| 1 |
jscott |
1.1 |
#include "ctrparam.h" |
| 2 |
|
|
#ifdef OCEAN_3D |
| 3 |
|
|
# include "ATM2D_OPTIONS.h" |
| 4 |
|
|
#endif |
| 5 |
|
|
C |
| 6 |
jscott |
1.2 |
#ifndef OCEAN_3D |
| 7 |
|
|
SUBROUTINE ATM2D_INIT_FIXED(nCouplePer, myThid) |
| 8 |
|
|
#else |
| 9 |
jscott |
1.1 |
SUBROUTINE ATM2D_INIT_FIXED(myThid) |
| 10 |
|
|
#endif |
| 11 |
|
|
C |==========================================================| |
| 12 |
jscott |
1.2 |
C | Initialization steps prior to any pickup info loaded. | |
| 13 |
jscott |
1.1 |
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 |
jscott |
1.2 |
#ifndef OCEAN_3D |
| 29 |
|
|
INTEGER nCouplePer !not a subroutine parm for OCEAN_3D |
| 30 |
|
|
#endif |
| 31 |
jscott |
1.1 |
INTEGER myThid |
| 32 |
|
|
|
| 33 |
|
|
NAMELIST /COUPLE_PARM/ |
| 34 |
|
|
& dtcouple, dtatm, dtocn, startYear, endYear, taveDump |
| 35 |
|
|
|
| 36 |
|
|
C === Local variables === |
| 37 |
jscott |
1.2 |
#ifdef OCEAN_3D |
| 38 |
|
|
INTEGER nCouplePer !not a subroutine parm for OCEAN_3D |
| 39 |
|
|
#endif |
| 40 |
jscott |
1.1 |
|
| 41 |
|
|
CALL CHECK_SETTINGS |
| 42 |
|
|
|
| 43 |
|
|
C set default values for these parms in couple.nml |
| 44 |
|
|
dtatm = 1 |
| 45 |
|
|
dtocn = 8 |
| 46 |
|
|
dtcouple = 8 |
| 47 |
|
|
startYear = 1 |
| 48 |
|
|
endYear = 100 |
| 49 |
|
|
taveDump=100 |
| 50 |
|
|
|
| 51 |
jscott |
1.2 |
C Next lines done in stand-alone ML model, so don't use any |
| 52 |
|
|
C MITGCM helper routines; hopefully no unit conflict... |
| 53 |
jscott |
1.1 |
OPEN(514,file='couple.nml',status='old') |
| 54 |
|
|
READ(514,COUPLE_PARM) |
| 55 |
|
|
CLOSE(514) |
| 56 |
|
|
CALL ATM2D_READPARMS(myThid) |
| 57 |
|
|
|
| 58 |
|
|
ncall_atm=dtcouple/dtatm |
| 59 |
|
|
ncall_ocean=dtcouple/dtocn |
| 60 |
|
|
nCouplePer = (endYear-startYear+1)*24*365/dtcouple |
| 61 |
|
|
|
| 62 |
|
|
PRINT *,'Model run years:',startYear,' to ', endYear |
| 63 |
|
|
PRINT *,'dcouple=',dtcouple |
| 64 |
|
|
PRINT *,'dtatm=',dtatm |
| 65 |
|
|
PRINT *,'dtocn=',dtocn |
| 66 |
|
|
PRINT *,'Total number of coupled periods:',nCouplePer |
| 67 |
|
|
|
| 68 |
|
|
#ifdef OCEAN_3D |
| 69 |
|
|
nTimeSteps = nCouplePer !overwrite whatever MITGCM gets from data |
| 70 |
|
|
#endif |
| 71 |
|
|
|
| 72 |
|
|
#ifdef CPL_OCEANCO2 |
| 73 |
|
|
ocupt=0.0 |
| 74 |
|
|
temuptann=0.0 |
| 75 |
|
|
#endif |
| 76 |
|
|
|
| 77 |
|
|
#ifdef IPCC_EMI |
| 78 |
|
|
OPEN (961,file='ipccemi.dat', |
| 79 |
|
|
& status='old') |
| 80 |
|
|
READ (961,*)nemis |
| 81 |
|
|
PRINT *,'IPCC EMI=',nemis |
| 82 |
|
|
CLOSE (961) |
| 83 |
|
|
#endif |
| 84 |
|
|
|
| 85 |
|
|
#ifdef OCEAN_3D |
| 86 |
|
|
# ifdef ATM2D_MPI_ON |
| 87 |
|
|
|
| 88 |
|
|
CALL INITIALISE |
| 89 |
|
|
|
| 90 |
|
|
C Perform registration with other components |
| 91 |
|
|
CALL ACCEPT_COMPONENT_REGISTRATIONS |
| 92 |
|
|
|
| 93 |
|
|
C Coordinate the transfer configuration information |
| 94 |
|
|
C between components |
| 95 |
|
|
CALL RECEIVE_COMPONENT_CONFIGS |
| 96 |
|
|
CALL SENDOUT_COMPONENT_CONFIGS |
| 97 |
|
|
# endif |
| 98 |
|
|
|
| 99 |
|
|
CALL INIT_ATM2D(dtatm, dtocn, dtcouple, myThid) |
| 100 |
|
|
#endif |
| 101 |
|
|
|
| 102 |
|
|
RETURN |
| 103 |
|
|
END |