| 1 |
#include "ctrparam.h" |
| 2 |
#ifdef OCEAN_3D |
| 3 |
# include "ATM2D_OPTIONS.h" |
| 4 |
#endif |
| 5 |
C |
| 6 |
#ifdef OCEAN_3D |
| 7 |
SUBROUTINE ATM2D_INIT_FIXED(myThid) |
| 8 |
#else |
| 9 |
SUBROUTINE ATM2D_INIT_FIXED(nCouplePer, myThid) |
| 10 |
#endif |
| 11 |
C |==========================================================| |
| 12 |
C | Initialization steps prior to any pickup info loaded | |
| 13 |
C \==========================================================/ |
| 14 |
IMPLICIT NONE |
| 15 |
|
| 16 |
#include "ATMSIZE.h" |
| 17 |
#include "DRIVER.h" |
| 18 |
#ifdef OCEAN_3D |
| 19 |
# include "SIZE.h" |
| 20 |
# include "EEPARAMS.h" |
| 21 |
# include "PARAMS.h" |
| 22 |
#endif |
| 23 |
|
| 24 |
C !INPUT/OUTPUT PARAMETERS: |
| 25 |
C == Routine arguments == |
| 26 |
C nCouplePer - total number of coupled periods for this run |
| 27 |
C myThid - thread number for this instance of the routine. |
| 28 |
INTEGER nCouplePer !not an output parm for OCEAN_3D |
| 29 |
INTEGER myThid |
| 30 |
|
| 31 |
NAMELIST /COUPLE_PARM/ |
| 32 |
& dtcouple, dtatm, dtocn, startYear, endYear, taveDump |
| 33 |
|
| 34 |
C === Local variables === |
| 35 |
|
| 36 |
CALL CHECK_SETTINGS |
| 37 |
|
| 38 |
C set default values for these parms in couple.nml |
| 39 |
dtatm = 1 |
| 40 |
dtocn = 8 |
| 41 |
dtcouple = 8 |
| 42 |
startYear = 1 |
| 43 |
endYear = 100 |
| 44 |
taveDump=100 |
| 45 |
|
| 46 |
OPEN(514,file='couple.nml',status='old') |
| 47 |
READ(514,COUPLE_PARM) |
| 48 |
CLOSE(514) |
| 49 |
CALL ATM2D_READPARMS(myThid) |
| 50 |
|
| 51 |
ncall_atm=dtcouple/dtatm |
| 52 |
ncall_ocean=dtcouple/dtocn |
| 53 |
nCouplePer = (endYear-startYear+1)*24*365/dtcouple |
| 54 |
|
| 55 |
PRINT *,'Model run years:',startYear,' to ', endYear |
| 56 |
PRINT *,'dcouple=',dtcouple |
| 57 |
PRINT *,'dtatm=',dtatm |
| 58 |
PRINT *,'dtocn=',dtocn |
| 59 |
PRINT *,'Total number of coupled periods:',nCouplePer |
| 60 |
|
| 61 |
#ifdef OCEAN_3D |
| 62 |
nTimeSteps = nCouplePer !overwrite whatever MITGCM gets from data |
| 63 |
#endif |
| 64 |
|
| 65 |
#ifdef CPL_OCEANCO2 |
| 66 |
ocupt=0.0 |
| 67 |
temuptann=0.0 |
| 68 |
#endif |
| 69 |
|
| 70 |
#ifdef IPCC_EMI |
| 71 |
OPEN (961,file='ipccemi.dat', |
| 72 |
& status='old') |
| 73 |
READ (961,*)nemis |
| 74 |
PRINT *,'IPCC EMI=',nemis |
| 75 |
CLOSE (961) |
| 76 |
#endif |
| 77 |
|
| 78 |
C assign defacto thread id |
| 79 |
C myThid = 1 |
| 80 |
|
| 81 |
#ifdef OCEAN_3D |
| 82 |
Cmove MPI init somewhere into MITGCM code? run for atmos processor, mpi-on |
| 83 |
# ifdef ATM2D_MPI_ON |
| 84 |
|
| 85 |
CALL INITIALISE |
| 86 |
|
| 87 |
C Perform registration with other components |
| 88 |
CALL ACCEPT_COMPONENT_REGISTRATIONS |
| 89 |
|
| 90 |
C Coordinate the transfer configuration information |
| 91 |
C between components |
| 92 |
CALL RECEIVE_COMPONENT_CONFIGS |
| 93 |
CALL SENDOUT_COMPONENT_CONFIGS |
| 94 |
# endif |
| 95 |
|
| 96 |
CALL INIT_ATM2D(dtatm, dtocn, dtcouple, myThid) |
| 97 |
#endif |
| 98 |
|
| 99 |
RETURN |
| 100 |
END |