/[MITgcm]/MITgcm/pkg/aim_v23/aim_readparms.F
ViewVC logotype

Diff of /MITgcm/pkg/aim_v23/aim_readparms.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.10 by edhill, Sun Sep 11 04:35:31 2005 UTC revision 1.18 by dfer, Thu Sep 24 20:08:06 2009 UTC
# Line 13  C     *================================= Line 13  C     *=================================
13  C     | S/R AIM_READPARMS  C     | S/R AIM_READPARMS
14  C     | o Read AIM physics package parameters  C     | o Read AIM physics package parameters
15  C     *==========================================================*  C     *==========================================================*
16  C     | Initialized parameter in common blocks:  C     | Initialized parameter in common blocks:
17  C     |  FORCON, SFLCON, CNVCON, LSCCON, RADCON, VDICON  C     |  FORCON, SFLCON, CNVCON, LSCCON, RADCON, VDICON
18  C     *==========================================================*  C     *==========================================================*
19  C     \ev  C     \ev
20    
21  C     !USES:  C     !USES:
22        IMPLICIT NONE        IMPLICIT NONE
23    
# Line 26  C     == Global variables === Line 26  C     == Global variables ===
26  #include "EEPARAMS.h"  #include "EEPARAMS.h"
27  #include "PARAMS.h"  #include "PARAMS.h"
28  #include "AIM_PARAMS.h"  #include "AIM_PARAMS.h"
29    #ifdef ALLOW_MNC
30    #include "MNC_PARAMS.h"
31    #endif
32    #ifdef ALLOW_AIM_CO2
33    #include "AIM_CO2.h"
34    #endif
35    
36    
37  C-   Physical constants + functions of sigma and latitude  C-   Physical constants + functions of sigma and latitude
38  c #include "com_physcon.h"  c #include "com_physcon.h"
# Line 34  C-   Constants for sub-grid-scale physic Line 41  C-   Constants for sub-grid-scale physic
41  #include "com_sflcon.h"  #include "com_sflcon.h"
42  #include "com_cnvcon.h"  #include "com_cnvcon.h"
43  #include "com_lsccon.h"  #include "com_lsccon.h"
44  #include "com_radcon.h"    #include "com_radcon.h"
45  #include "com_vdicon.h"    #include "com_vdicon.h"
46    
47  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
48  C     == Routine Arguments ==        C     == Routine Arguments ==
49  C     myThid -  Number of this instance  C     myThid :: my Thread Id number
50        INTEGER myThid        INTEGER myThid
51  CEOP  CEOP
52    
53  #ifdef ALLOW_AIM  #ifdef ALLOW_AIM
54    
55  C     == Local Variables ==  C     == Local Variables ==
56  C     msgBuf      - Informational/error meesage buffer  C     msgBuf      :: Informational/error meesage buffer
57  C     iUnit       - Work variable for IO unit number  C     iUnit       :: Work variable for IO unit number
58        CHARACTER*(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
59        INTEGER iUnit        INTEGER iUnit
60    
# Line 56  C---+----1----+----2----+----3----+----4 Line 63  C---+----1----+----2----+----3----+----4
63  C--   AIM interface parameter (common AIM_PARM_?):  C--   AIM interface parameter (common AIM_PARM_?):
64  C     aim_useFMsurfBC :: select surface B.C. from Franco Molteni  C     aim_useFMsurfBC :: select surface B.C. from Franco Molteni
65  C     aim_useMMsurfFc :: select Monthly Mean surface forcing (e.g., NCEP)  C     aim_useMMsurfFc :: select Monthly Mean surface forcing (e.g., NCEP)
66    C     aim_surfForc_TimePeriod :: Length of forcing time period (e.g. 1 month)
67    C     aim_surfForc_NppCycle   :: Number of time period per Cycle (e.g. 12)
68    C     aim_surfForc_TransRatio :: transition ratio from one month to the next
69  C     aim_surfPotTemp :: surf.Temp input file is in Pot.Temp (aim_useMMsurfFc)  C     aim_surfPotTemp :: surf.Temp input file is in Pot.Temp (aim_useMMsurfFc)
70  C     aim_energPrecip :: account for energy of precipitation (snow & rain temp)  C     aim_energPrecip :: account for energy of precipitation (snow & rain temp)
71  C     aim_splitSIOsFx :: compute separately Sea-Ice & Ocean surf. Flux  C     aim_splitSIOsFx :: compute separately Sea-Ice & Ocean surf. Flux
# Line 75  C     aim_clrSkyDiag :: compute clear-sk Line 85  C     aim_clrSkyDiag :: compute clear-sk
85  C     aim_taveFreq :: Frequency^-1 for time-average output (s)  C     aim_taveFreq :: Frequency^-1 for time-average output (s)
86  C     aim_diagFreq :: Frequency^-1 for diagnostic output (s)  C     aim_diagFreq :: Frequency^-1 for diagnostic output (s)
87  C     aim_tendFreq :: Frequency^-1 for tendencies output (s)  C     aim_tendFreq :: Frequency^-1 for tendencies output (s)
88    C     aim_selectOceAlbedo :: Ocean albedo(latitude) scheme (integer)
89    C                              0 = constant (default)
90    C                              1 = Briegleb et al. 1986
91        NAMELIST /AIM_PARAMS/        NAMELIST /AIM_PARAMS/
92       &    aim_useFMsurfBC, aim_useMMsurfFc,       &    aim_useFMsurfBC, aim_useMMsurfFc,
93       &    aim_surfPotTemp, aim_energPrecip, aim_splitSIOsFx,       &    aim_surfForc_TimePeriod, aim_surfForc_NppCycle,
94         &    aim_surfForc_TransRatio, aim_surfPotTemp,
95         &    aim_energPrecip, aim_splitSIOsFx,
96       &    aim_MMsufx, aim_MMsufxLength,       &    aim_MMsufx, aim_MMsufxLength,
97       &    aim_LandFile, aim_albFile, aim_vegFile,       &    aim_LandFile, aim_albFile, aim_vegFile,
98       &    aim_sstFile, aim_lstFile, aim_oiceFile, aim_snowFile,       &    aim_sstFile, aim_lstFile, aim_oiceFile, aim_snowFile,
99       &    aim_swcFile,       &    aim_swcFile, aim_qfxFile,
100       &    aim_dragStrato,       &    aim_dragStrato,
101       &    aim_clrSkyDiag, aim_taveFreq, aim_diagFreq, aim_tendFreq,       &    aim_clrSkyDiag, aim_taveFreq, aim_diagFreq, aim_tendFreq,
102       &     aim_timeave_mnc, aim_snapshot_mnc,       &    aim_timeave_mnc, aim_snapshot_mnc,
103       &     aim_pickup_write_mnc, aim_pickup_read_mnc       &    aim_pickup_write_mnc, aim_pickup_read_mnc,
104         &    aim_selectOceAlbedo
105    
106  C--   Physical constants (common PHYCON) :  C--   Physical constants (common PHYCON) :
107  C       P0    = reference pressure                 [Pa=N/m2]  C       P0    = reference pressure                 [Pa=N/m2]
# Line 111  C      hSnowWetness :: snow depth (m) co Line 127  C      hSnowWetness :: snow depth (m) co
127       &    SOLC, ALBSEA, ALBICE, ALBSN,       &    SOLC, ALBSEA, ALBICE, ALBSN,
128       &    SDALB, SWCAP, SWWIL, hSnowWetness       &    SDALB, SWCAP, SWWIL, hSnowWetness
129    
130  C--   Constants for surface fluxes (common SFLCON) :  C--   Constants for surface fluxes (common SFLCON) :
131  C      FWIND0 = ratio of near-sfc wind to lowest-level wind  C      FWIND0 = ratio of near-sfc wind to lowest-level wind
132  C      FTEMP0 = weight for near-sfc temperature extrapolation (0-1) :  C      FTEMP0 = weight for near-sfc temperature extrapolation (0-1) :
133  C               1 : linear extrapolation from two lowest levels  C               1 : linear extrapolation from two lowest levels
# Line 147  C      SMF    = ratio between secondary Line 163  C      SMF    = ratio between secondary
163       &    PSMIN, TRCNV, QBL, RHBL, RHIL, ENTMAX, SMF       &    PSMIN, TRCNV, QBL, RHBL, RHIL, ENTMAX, SMF
164    
165    
166  C--   Constants for large-scale condendation (common LSCCON) :  C--   Constants for large-scale condendation (common LSCCON) :
167  C      TRLSC  = Relaxation time (in hours) for specific humidity  C      TRLSC  = Relaxation time (in hours) for specific humidity
168  C      RHLSC  = Maximum relative humidity threshold (at sigma=1)  C      RHLSC  = Maximum relative humidity threshold (at sigma=1)
169  C      DRHLSC = Vertical range of relative humidity threshold  C      DRHLSC = Vertical range of relative humidity threshold
# Line 182  C      ABLCL2 = abs. of clouds       in Line 198  C      ABLCL2 = abs. of clouds       in
198       &    RHCL1,  RHCL2,  QACL1,  QACL2,  ALBCL,       &    RHCL1,  RHCL2,  QACL1,  QACL2,  ALBCL,
199       &    EPSSW,  EPSLW,  EMISFC,       &    EPSSW,  EPSLW,  EMISFC,
200       &    ABSDRY, ABSAER, ABSWV1, ABSWV2, ABSCL1, ABSCL2,       &    ABSDRY, ABSAER, ABSWV1, ABSWV2, ABSCL1, ABSCL2,
201       &    ABLWIN, ABLCO2, ABLWV1, ABLWV2, ABLCL1, ABLCL2       &    ABLWIN, ABLCO2, ABLWV1, ABLWV2, ABLCL1, ABLCL2
202    
203  C--   Constants for vertical dif. and sh. conv. (common VDICON) :  C--   Constants for vertical dif. and sh. conv. (common VDICON) :
204  C      TRSHC  = relaxation time (in hours) for shallow convection  C      TRSHC  = relaxation time (in hours) for shallow convection
205  C      TRVDI  = relaxation time (in hours) for moisture diffusion  C      TRVDI  = relaxation time (in hours) for moisture diffusion
206  C      TRVDS  = relaxation time (in hours) for super-adiab. conditions  C      TRVDS  = relaxation time (in hours) for super-adiab. conditions
# Line 193  C      SEGRAD = minimum gradient of dry Line 209  C      SEGRAD = minimum gradient of dry
209        NAMELIST /AIM_PAR_VDI/        NAMELIST /AIM_PAR_VDI/
210       &    TRSHC, TRVDI, TRVDS, RHGRAD, SEGRAD       &    TRSHC, TRVDI, TRVDS, RHGRAD, SEGRAD
211    
212    #ifdef ALLOW_AIM_CO2
213          NAMELIST /AIM_PAR_CO2/ atmpCO2init, Aim_CO2_Flag
214    #endif
215    
216  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
217    
218        _BEGIN_MASTER(myThid)        _BEGIN_MASTER(myThid)
219          
220    C--  Set default value for AIM interface code (AIM_PARAMS.h):
221          aim_useFMsurfBC = .TRUE.
222          aim_useMMsurfFc = .FALSE.
223          aim_surfPotTemp = .FALSE.
224          aim_energPrecip = .FALSE.
225          aim_splitSIOsFx = .FALSE.
226          aim_clrSkyDiag  = .FALSE.
227    #ifdef ALLOW_MNC
228          aim_timeave_mnc       = timeave_mnc .AND. useMNC
229          aim_snapshot_mnc      = snapshot_mnc .AND. useMNC
230          aim_pickup_write_mnc  = pickup_write_mnc .AND. useMNC
231          aim_pickup_read_mnc   = pickup_read_mnc .AND. useMNC
232    #else
233          aim_timeave_mnc       = .FALSE.
234          aim_snapshot_mnc      = .FALSE.
235          aim_pickup_write_mnc  = .FALSE.
236          aim_pickup_read_mnc   = .FALSE.
237    #endif
238          aim_MMsufx = '.bin'
239          aim_MMsufxLength = 4
240    C-    Length (s) of one time period:
241          aim_surfForc_TimePeriod = 30.*86400.
242    C-    Number of time period per Cycle:
243          aim_surfForc_NppCycle   = 12
244          aim_selectOceAlbedo = 0
245    C-    define how fast the (linear) transition is from one month to the next
246    C      = 1                 -> linear between 2 midle month
247    C      > TimePeriod/deltaT -> jump from one month to the next one
248          aim_surfForc_TransRatio = 1.
249          aim_LandFile = ' '
250          aim_albFile  = ' '
251          aim_vegFile  = ' '
252          aim_sstFile  = ' '
253          aim_lstFile  = ' '
254          aim_oiceFile = ' '
255          aim_snowFile = ' '
256          aim_swcFile  = ' '
257          aim_qfxFile  = ' '
258          aim_dragStrato = 0.
259          aim_taveFreq = taveFreq
260          aim_diagFreq = dumpFreq
261          aim_tendFreq = 0.
262    #ifdef ALLOW_AIM_CO2
263          atmpCO2init  = 326. _d -6
264          Aim_CO2_Flag = 1
265    #endif
266    
267    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
268    
269        WRITE(msgBuf,'(A)') ' AIM_READ_PHYSPARMS: opening data.aimphys'        WRITE(msgBuf,'(A)') ' AIM_READ_PHYSPARMS: opening data.aimphys'
270        CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)        CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)
271    
# Line 213  C-    Constants for boundary forcing Line 282  C-    Constants for boundary forcing
282    
283  C-    Constants for surface fluxes  C-    Constants for surface fluxes
284        READ(UNIT=iUnit,NML=AIM_PAR_SFL)        READ(UNIT=iUnit,NML=AIM_PAR_SFL)
285    
286  C-    Constants for convection  C-    Constants for convection
287        READ(UNIT=iUnit,NML=AIM_PAR_CNV)        READ(UNIT=iUnit,NML=AIM_PAR_CNV)
288    
# Line 226  C-    Constants for radiation Line 295  C-    Constants for radiation
295  C-    Constants for vertical diffusion and sh. conv.  C-    Constants for vertical diffusion and sh. conv.
296        READ(UNIT=iUnit,NML=AIM_PAR_VDI)        READ(UNIT=iUnit,NML=AIM_PAR_VDI)
297    
298        WRITE(msgBuf,'(A)')  #ifdef ALLOW_AIM_CO2
299    C-    Constants for CO2
300          READ(UNIT=iUnit,NML=AIM_PAR_CO2)
301    #endif
302    
303          WRITE(msgBuf,'(A)')
304       &   ' AIM_READ_PHYSPARMS: finished reading data.aimphys'       &   ' AIM_READ_PHYSPARMS: finished reading data.aimphys'
305        CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)        CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)
306    
307  C--   Close the open data file  C--   Close the open data file
308        CLOSE(iUnit)        CLOSE(iUnit)
309    
# Line 263  C-    If aim_taveFreq is positive, then Line 337  C-    If aim_taveFreq is positive, then
337  #endif /* ALLOW_AIM_TAVE */  #endif /* ALLOW_AIM_TAVE */
338    
339  #ifdef ALLOW_MNC  #ifdef ALLOW_MNC
340        aim_timeave_mnc      =        aim_timeave_mnc        = useMNC .AND. aim_timeave_mnc
341       &     aim_timeave_mnc .AND. useMNC        aim_snapshot_mnc       = useMNC .AND. aim_snapshot_mnc
342        aim_snapshot_mnc     =        aim_pickup_write_mnc   = useMNC .AND. aim_pickup_write_mnc
343       &     aim_snapshot_mnc .AND. useMNC        aim_pickup_read_mnc    = useMNC .AND. aim_pickup_read_mnc
344        aim_pickup_write_mnc =  #else /* ALLOW_MNC */
      &     aim_pickup_write_mnc .AND. useMNC  
       aim_pickup_read_mnc  =  
      &     aim_pickup_read_mnc .AND. useMNC  
   
       aim_timeave_mdsio      = (.NOT. aim_timeave_mnc)  
      &     .OR. outputTypesInclusive  
       aim_snapshot_mdsio     = (.NOT. aim_snapshot_mnc)  
      &     .OR. outputTypesInclusive  
       aim_pickup_write_mdsio = (.NOT. aim_pickup_write_mnc)  
      &     .OR. outputTypesInclusive  
       aim_pickup_read_mdsio  = (.NOT. aim_pickup_read_mnc)  
      &     .OR. outputTypesInclusive  
 #else  
 C     Stop if MNC is not compiled-in and aim_*_mnc=.TRUE.  
       IF ( aim_timeave_mnc .OR. aim_snapshot_mnc  
      &     .OR. aim_pickup_write_mnc .OR. aim_pickup_read_mnc ) THEN  
         WRITE(msgBuf,'(2A)')  
      &       'AIM_READPARMS: one or more aim_*_mnc vars is .TRUE. ',  
      &       'but ALLOW_MNC is undefined'  
         CALL PRINT_ERROR( msgBuf, myThid)  
         WRITE(msgBuf,'(2A)') 'Please re-compile with the MNC ',  
      &       'package enabled'  
         CALL PRINT_ERROR( msgBuf, myThid)  
         STOP 'ABNORMAL END: S/R AIM_READPARMS'  
       ENDIF  
345        aim_timeave_mnc        = .FALSE.        aim_timeave_mnc        = .FALSE.
346        aim_snapshot_mnc       = .FALSE.        aim_snapshot_mnc       = .FALSE.
347        aim_pickup_write_mnc   = .FALSE.        aim_pickup_write_mnc   = .FALSE.
348        aim_pickup_read_mnc    = .FALSE.        aim_pickup_read_mnc    = .FALSE.
       aim_timeave_mdsio      = .TRUE.  
       aim_snapshot_mdsio     = .TRUE.  
       aim_pickup_write_mdsio = .TRUE.  
       aim_pickup_read_mdsio  = .TRUE.  
349  #endif /* ALLOW_MNC */  #endif /* ALLOW_MNC */
350          aim_timeave_mdsio      = (.NOT. aim_timeave_mnc)
351         &                     .OR. outputTypesInclusive
352          aim_snapshot_mdsio     = (.NOT. aim_snapshot_mnc)
353         &                     .OR. outputTypesInclusive
354          aim_pickup_write_mdsio = (.NOT. aim_pickup_write_mnc)
355         &                     .OR. outputTypesInclusive
356          aim_pickup_read_mdsio  = (.NOT. aim_pickup_read_mnc)
357         &                     .OR. outputTypesInclusive
358    
359    
360  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
# Line 318  C--   Print out parameter values : Line 371  C--   Print out parameter values :
371    
372         CALL WRITE_0D_L( useLand, INDEX_NONE,         CALL WRITE_0D_L( useLand, INDEX_NONE,
373       &                 'useLand =',       &                 'useLand =',
374       &'   /* use Land package for surf.BC over land  */')             &'   /* use Land package for surf.BC over land  */')
375    
376  C- namelist AIM_PARAMS:  C- namelist AIM_PARAMS:
377         CALL WRITE_0D_L( aim_useFMsurfBC, INDEX_NONE,         CALL WRITE_0D_L( aim_useFMsurfBC, INDEX_NONE,
378       &                 'aim_useFMsurfBC =',       &                 'aim_useFMsurfBC =',
379       &'   /* F.Molteni surf. BC scheme on/off flag */')             &'   /* F.Molteni surf. BC scheme on/off flag */')
380         CALL WRITE_0D_L( aim_useMMsurfFc, INDEX_NONE,         CALL WRITE_0D_L( aim_useMMsurfFc, INDEX_NONE,
381       &                 'aim_useMMsurfFc =',       &                 'aim_useMMsurfFc =',
382       &'   /* Monthly Mean surf. Forcing on/off flag */')             &'   /* Monthly Mean surf. Forcing on/off flag */')
383           CALL WRITE_0D_RL(aim_surfForc_TimePeriod, INDEX_NONE,
384         &                 'aim_surfForc_TimePeriod =',
385         &  ' /* Length of forcing time period (s) */')
386           CALL WRITE_0D_I( aim_surfForc_NppCycle, INDEX_NONE,
387         &                 'aim_surfForc_NppCycle   =',
388         &  ' /* Number of time period per Cycle */')
389           CALL WRITE_0D_RL(aim_surfForc_TransRatio, INDEX_NONE,
390         &                 'aim_surfForc_TransRatio =',
391         &  ' /* transition ratio from one month to the next */')
392         CALL WRITE_0D_L( aim_surfPotTemp, INDEX_NONE,         CALL WRITE_0D_L( aim_surfPotTemp, INDEX_NONE,
393       &                 'aim_surfPotTemp =',       &                 'aim_surfPotTemp =',
394       &'   /* Surf Temp file in Pot.Temp on/off flag */')             &'   /* Surf Temp file in Pot.Temp on/off flag */')
395         CALL WRITE_0D_L( aim_energPrecip, INDEX_NONE,         CALL WRITE_0D_L( aim_energPrecip, INDEX_NONE,
396       &                 'aim_energPrecip =',       &                 'aim_energPrecip =',
397       &  ' /* account for energy of precip. on/off flag */')             &  ' /* account for energy of precip. on/off flag */')
398         CALL WRITE_0D_L( aim_splitSIOsFx, INDEX_NONE,         CALL WRITE_0D_L( aim_splitSIOsFx, INDEX_NONE,
399       &                 'aim_splitSIOsFx =',       &                 'aim_splitSIOsFx =',
400       &  ' /* separate Sea-Ice & Ocean Flux on/off flag */')             &  ' /* separate Sea-Ice & Ocean Flux on/off flag */')
401         CALL WRITE_0D_R8(aim_dragStrato,INDEX_NONE,'aim_dragStrato=',         CALL WRITE_0D_RL(aim_dragStrato,INDEX_NONE,'aim_dragStrato=',
402       &    ' /* stratospheric-drag damping time scale (s) */')       &    ' /* stratospheric-drag damping time scale (s) */')
403         CALL WRITE_0D_L( aim_clrSkyDiag, INDEX_NONE,         CALL WRITE_0D_L( aim_clrSkyDiag, INDEX_NONE,
404       &                 'aim_clrSkyDiag =',       &                 'aim_clrSkyDiag =',
405       &  ' /* do clear-sky radiation diagnostics */')             &  ' /* do clear-sky radiation diagnostics */')
406         CALL WRITE_0D_R8( aim_taveFreq, INDEX_NONE,'aim_taveFreq =',         CALL WRITE_0D_RL( aim_taveFreq, INDEX_NONE,'aim_taveFreq =',
407       &  '   /* Frequency^-1 for time-Aver. output (s) */')       &  '   /* Frequency^-1 for time-Aver. output (s) */')
408         CALL WRITE_0D_R8( aim_diagFreq, INDEX_NONE,'aim_diagFreq =',         CALL WRITE_0D_RL( aim_diagFreq, INDEX_NONE,'aim_diagFreq =',
409       &  '   /* Frequency^-1 for diagnostic output (s) */')       &  '   /* Frequency^-1 for diagnostic output (s) */')
410         CALL WRITE_0D_R8( aim_tendFreq, INDEX_NONE,'aim_tendFreq =',         CALL WRITE_0D_RL( aim_tendFreq, INDEX_NONE,'aim_tendFreq =',
411       &  '   /* Frequency^-1 for tendencies output (s) */')       &  '   /* Frequency^-1 for tendencies output (s) */')
412           CALL WRITE_0D_I( aim_selectOceAlbedo, INDEX_NONE,
413         &                 'aim_selectOceAlbedo =',
414         &  '   /* Ocean albedo(latitude) flag */')
415    
416  C- namelist AIM_PAR_FOR:  C- namelist AIM_PAR_FOR:
417         CALL WRITE_0D_R8( SOLC,  INDEX_NONE,'AIM_FOR:   SOLC =',         CALL WRITE_0D_RL( SOLC,  INDEX_NONE,'AIM_FOR:   SOLC =',
418       &  '   /* Solar constant (area averaged) in W/m2 */')       &  '   /* Solar constant (area averaged) in W/m2 */')
419         CALL WRITE_0D_R8( ALBSEA,INDEX_NONE,'AIM_FOR: ALBSEA =',         CALL WRITE_0D_RL( ALBSEA,INDEX_NONE,'AIM_FOR: ALBSEA =',
420       &  '   /* Albedo over sea [0-1]      */')       &  '   /* Albedo over sea [0-1]      */')
421         CALL WRITE_0D_R8( ALBICE,INDEX_NONE,'AIM_FOR: ALBICE =',         CALL WRITE_0D_RL( ALBICE,INDEX_NONE,'AIM_FOR: ALBICE =',
422       &  '   /* Albedo over sea ice (for ice fraction =1) */')       &  '   /* Albedo over sea ice (for ice fraction =1) */')
423         CALL WRITE_0D_R8( ALBSN, INDEX_NONE,'AIM_FOR:  ALBSN =',         CALL WRITE_0D_RL( ALBSN, INDEX_NONE,'AIM_FOR:  ALBSN =',
424       &  '   /* Albedo over snow (for snow depth > SDALB) */')       &  '   /* Albedo over snow (for snow depth > SDALB) */')
425         CALL WRITE_0D_R8( SDALB, INDEX_NONE,'AIM_FOR:  SDALB =',         CALL WRITE_0D_RL( SDALB, INDEX_NONE,'AIM_FOR:  SDALB =',
426       &  '   /* Snow depth (mm H2O) corresp. maximum albedo */')       &  '   /* Snow depth (mm H2O) corresp. maximum albedo */')
427         CALL WRITE_0D_R8( SWCAP, INDEX_NONE,'AIM_FOR:  SWCAP =',         CALL WRITE_0D_RL( SWCAP, INDEX_NONE,'AIM_FOR:  SWCAP =',
428       &  '   /* Soil wetness at field capacity (Vol.fract.) */')       &  '   /* Soil wetness at field capacity (Vol.fract.) */')
429         CALL WRITE_0D_R8( SWWIL, INDEX_NONE,'AIM_FOR:  SWWIL =',         CALL WRITE_0D_RL( SWWIL, INDEX_NONE,'AIM_FOR:  SWWIL =',
430       &  '   /* Soil wetness at wilting point  (Vol.fract.) */')       &  '   /* Soil wetness at wilting point  (Vol.fract.) */')
431         CALL WRITE_0D_R8( hSnowWetness, INDEX_NONE,         CALL WRITE_0D_RL( hSnowWetness, INDEX_NONE,
432       &  'AIM_FOR: hSnowWetness=',       &  'AIM_FOR: hSnowWetness=',
433       &  '   /* snow depth corresp. maximum wetness (m) */')       &  '   /* snow depth corresp. maximum wetness (m) */')
434    
435  C- namelist AIM_PAR_SFL:  C- namelist AIM_PAR_SFL:
436         CALL WRITE_0D_R8( FWIND0,INDEX_NONE,'AIM_SFL: FWIND0 =',         CALL WRITE_0D_RL( FWIND0,INDEX_NONE,'AIM_SFL: FWIND0 =',
437       &  '   /* ratio of near-sfc wind to lowest-level wind */')       &  '   /* ratio of near-sfc wind to lowest-level wind */')
438         CALL WRITE_0D_R8( FTEMP0,INDEX_NONE,'AIM_SFL: FTEMP0 =',         CALL WRITE_0D_RL( FTEMP0,INDEX_NONE,'AIM_SFL: FTEMP0 =',
439       &  '  /* weight for near-sfc temp. extrapolation (0-1)*/')       &  '  /* weight for near-sfc temp. extrapolation (0-1)*/')
440         CALL WRITE_0D_R8( FHUM0, INDEX_NONE,'AIM_SFL:  FHUM0 =',         CALL WRITE_0D_RL( FHUM0, INDEX_NONE,'AIM_SFL:  FHUM0 =',
441       &  '  /* weight for near-sfc spec.humid. extrap. (0-1)*/')       &  '  /* weight for near-sfc spec.humid. extrap. (0-1)*/')
442         CALL WRITE_0D_R8( CDL,   INDEX_NONE,'AIM_SFL:    CDL =',         CALL WRITE_0D_RL( CDL,   INDEX_NONE,'AIM_SFL:    CDL =',
443       &  '   /* drag coefficient for momentum over land */')       &  '   /* drag coefficient for momentum over land */')
444         CALL WRITE_0D_R8( CDS,   INDEX_NONE,'AIM_SFL:    CDS =',         CALL WRITE_0D_RL( CDS,   INDEX_NONE,'AIM_SFL:    CDS =',
445       &  '   /* drag coefficient for momentum over sea  */')       &  '   /* drag coefficient for momentum over sea  */')
446         CALL WRITE_0D_R8( CHL,   INDEX_NONE,'AIM_SFL:    CHL =',         CALL WRITE_0D_RL( CHL,   INDEX_NONE,'AIM_SFL:    CHL =',
447       &  '   /* heat exchange coefficient over land */')       &  '   /* heat exchange coefficient over land */')
448         CALL WRITE_0D_R8( CHS,   INDEX_NONE,'AIM_SFL:    CHS =',         CALL WRITE_0D_RL( CHS,   INDEX_NONE,'AIM_SFL:    CHS =',
449       &  '   /* heat exchange coefficient over sea  */')       &  '   /* heat exchange coefficient over sea  */')
450         CALL WRITE_0D_R8( VGUST, INDEX_NONE,'AIM_SFL:  VGUST =',         CALL WRITE_0D_RL( VGUST, INDEX_NONE,'AIM_SFL:  VGUST =',
451       &  '   /* wind speed [m/s] for sub-grid-scale gusts */')       &  '   /* wind speed [m/s] for sub-grid-scale gusts */')
452         CALL WRITE_0D_R8( CTDAY, INDEX_NONE,'AIM_SFL:  CTDAY =',         CALL WRITE_0D_RL( CTDAY, INDEX_NONE,'AIM_SFL:  CTDAY =',
453       &  '   /* daily-cycle correction (dTskin/dSSRad) */')       &  '   /* daily-cycle correction (dTskin/dSSRad) */')
454         CALL WRITE_0D_R8( DTHETA,INDEX_NONE,'AIM_SFL: DTHETA =',         CALL WRITE_0D_RL( DTHETA,INDEX_NONE,'AIM_SFL: DTHETA =',
455       &  '   /* Pot.Temp. gradient for stability correction */')       &  '   /* Pot.Temp. gradient for stability correction */')
456         CALL WRITE_0D_R8( dTstab,INDEX_NONE,'AIM_SFL: dTstab =',         CALL WRITE_0D_RL( dTstab,INDEX_NONE,'AIM_SFL: dTstab =',
457       &  '   /* Pot.Temp. increment for stab.funct. derivative */')       &  '   /* Pot.Temp. increment for stab.funct. derivative */')
458         CALL WRITE_0D_R8( FSTAB, INDEX_NONE,'AIM_SFL:  FSTAB =',         CALL WRITE_0D_RL( FSTAB, INDEX_NONE,'AIM_SFL:  FSTAB =',
459       &  '   /* Amplitude of stability correction (fract.) */')       &  '   /* Amplitude of stability correction (fract.) */')
460         CALL WRITE_0D_R8( HDRAG, INDEX_NONE,'AIM_SFL:  HDRAG =',         CALL WRITE_0D_RL( HDRAG, INDEX_NONE,'AIM_SFL:  HDRAG =',
461       &  '   /* Height scale for orographic correction */')       &  '   /* Height scale for orographic correction */')
462         CALL WRITE_0D_R8( FHDRAG,INDEX_NONE,'AIM_SFL: FHDRAG =',         CALL WRITE_0D_RL( FHDRAG,INDEX_NONE,'AIM_SFL: FHDRAG =',
463       &  '   /* Amplitude of orographic correction (fract.)*/')       &  '   /* Amplitude of orographic correction (fract.)*/')
464    
465  C- namelist AIM_PAR_CNV:  C- namelist AIM_PAR_CNV:
466         CALL WRITE_0D_R8( PSMIN, INDEX_NONE,'AIM_CNV:  PSMIN =',         CALL WRITE_0D_RL( PSMIN, INDEX_NONE,'AIM_CNV:  PSMIN =',
467       &  '   /* min norm.sfc.P. for occurrence of convect. */')       &  '   /* min norm.sfc.P. for occurrence of convect. */')
468         CALL WRITE_0D_R8( TRCNV, INDEX_NONE,'AIM_CNV:  TRCNV =',         CALL WRITE_0D_RL( TRCNV, INDEX_NONE,'AIM_CNV:  TRCNV =',
469       &  '   /* time of relaxation [h] towards ref state */')       &  '   /* time of relaxation [h] towards ref state */')
470         CALL WRITE_0D_R8( QBL,   INDEX_NONE,'AIM_CNV:    QBL =',         CALL WRITE_0D_RL( QBL,   INDEX_NONE,'AIM_CNV:    QBL =',
471       &  '   /* specific hum. threshold in the Bound.layer */')       &  '   /* specific hum. threshold in the Bound.layer */')
472         CALL WRITE_0D_R8( RHBL,  INDEX_NONE,'AIM_CNV:   RHBL =',         CALL WRITE_0D_RL( RHBL,  INDEX_NONE,'AIM_CNV:   RHBL =',
473       &  '   /* relative hum. threshold in the Bound.layer */')       &  '   /* relative hum. threshold in the Bound.layer */')
474         CALL WRITE_0D_R8( RHIL,  INDEX_NONE,'AIM_CNV:   RHIL =',         CALL WRITE_0D_RL( RHIL,  INDEX_NONE,'AIM_CNV:   RHIL =',
475       &  '   /* rel.hum. threshold (intern) for 2nd mass.Flx*/')       &  '   /* rel.hum. threshold (intern) for 2nd mass.Flx*/')
476         CALL WRITE_0D_R8( ENTMAX,INDEX_NONE,'AIM_CNV: ENTMAX =',         CALL WRITE_0D_RL( ENTMAX,INDEX_NONE,'AIM_CNV: ENTMAX =',
477       &  '   /* time of relaxation [h] towards neutral eq. */')       &  '   /* time of relaxation [h] towards neutral eq. */')
478         CALL WRITE_0D_R8( SMF,   INDEX_NONE,'AIM_CNV:    SMF =',         CALL WRITE_0D_RL( SMF,   INDEX_NONE,'AIM_CNV:    SMF =',
479       &  '   /* ratio 2ndary/primary mass.Flx at cloud-base*/')       &  '   /* ratio 2ndary/primary mass.Flx at cloud-base*/')
480    
481  C- namelist AIM_PAR_LSC:  C- namelist AIM_PAR_LSC:
482         CALL WRITE_0D_R8( TRLSC, INDEX_NONE,'AIM_LSC:  TRLSC =',         CALL WRITE_0D_RL( TRLSC, INDEX_NONE,'AIM_LSC:  TRLSC =',
483       &  '   /* relaxation time [h] for supersat. spec.hum. */')       &  '   /* relaxation time [h] for supersat. spec.hum. */')
484         CALL WRITE_0D_R8( RHLSC, INDEX_NONE,'AIM_LSC:  RHLSC =',         CALL WRITE_0D_RL( RHLSC, INDEX_NONE,'AIM_LSC:  RHLSC =',
485       &  '   /* Max rel.humidity threshold (at sigma=1) */')       &  '   /* Max rel.humidity threshold (at sigma=1) */')
486         CALL WRITE_0D_R8( DRHLSC,INDEX_NONE,'AIM_LSC: DRHLSC =',         CALL WRITE_0D_RL( DRHLSC,INDEX_NONE,'AIM_LSC: DRHLSC =',
487       &  '   /* Vertical range of rel.humidity threshold */')       &  '   /* Vertical range of rel.humidity threshold */')
488         CALL WRITE_0D_R8( QSMAX, INDEX_NONE,'AIM_LSC:  QSMAX =',         CALL WRITE_0D_RL( QSMAX, INDEX_NONE,'AIM_LSC:  QSMAX =',
489       &  '   /* Define the maximum latent heat release */')       &  '   /* Define the maximum latent heat release */')
490    
491  C- namelist AIM_PAR_RAD:  C- namelist AIM_PAR_RAD:
492         CALL WRITE_0D_R8( RHCL1, INDEX_NONE,'AIM_RAD:  RHCL1 =',         CALL WRITE_0D_RL( RHCL1, INDEX_NONE,'AIM_RAD:  RHCL1 =',
493       &  '   /*  rel.hum. corresponding to cloud cover = 0 */')       &  '   /*  rel.hum. corresponding to cloud cover = 0 */')
494         CALL WRITE_0D_R8( RHCL2, INDEX_NONE,'AIM_RAD:  RHCL2 =',         CALL WRITE_0D_RL( RHCL2, INDEX_NONE,'AIM_RAD:  RHCL2 =',
495       &  '   /*  rel.hum. corresponding to cloud cover = 1 */')       &  '   /*  rel.hum. corresponding to cloud cover = 1 */')
496         CALL WRITE_0D_R8( QACL1, INDEX_NONE,'AIM_RAD:  QACL1 =',         CALL WRITE_0D_RL( QACL1, INDEX_NONE,'AIM_RAD:  QACL1 =',
497       &  '   /* spec.hum. threshold for cloud, upper trop. */')       &  '   /* spec.hum. threshold for cloud, upper trop. */')
498         CALL WRITE_0D_R8( QACL2, INDEX_NONE,'AIM_RAD:  QACL2 =',         CALL WRITE_0D_RL( QACL2, INDEX_NONE,'AIM_RAD:  QACL2 =',
499       &  '   /* spec.hum. threshold for cloud, upper trop. */')       &  '   /* spec.hum. threshold for cloud, upper trop. */')
500         CALL WRITE_0D_R8( ALBCL, INDEX_NONE,'AIM_RAD:  ALBCL =',         CALL WRITE_0D_RL( ALBCL, INDEX_NONE,'AIM_RAD:  ALBCL =',
501       &  '   /*  cloud albedo (for cloud cover = 1) */')       &  '   /*  cloud albedo (for cloud cover = 1) */')
502         CALL WRITE_0D_R8( EPSSW, INDEX_NONE,'AIM_RAD:  EPSSW =',         CALL WRITE_0D_RL( EPSSW, INDEX_NONE,'AIM_RAD:  EPSSW =',
503       &  '   /*  fract. of inc.solar rad. absorbed by ozone */')         &  '   /*  fract. of inc.solar rad. absorbed by ozone */')
504         CALL WRITE_0D_R8( EPSLW, INDEX_NONE,'AIM_RAD:  EPSLW =',         CALL WRITE_0D_RL( EPSLW, INDEX_NONE,'AIM_RAD:  EPSLW =',
505       &  '   /*  fract. of sfc LW emitted directly to space */')         &  '   /*  fract. of sfc LW emitted directly to space */')
506         CALL WRITE_0D_R8( EMISFC,INDEX_NONE,'AIM_RAD: EMISFC =',         CALL WRITE_0D_RL( EMISFC,INDEX_NONE,'AIM_RAD: EMISFC =',
507       &  '   /*  longwave surface emissivity */')         &  '   /*  longwave surface emissivity */')
508    
509         WRITE(msgBuf,'(A)')         WRITE(msgBuf,'(A)')
510       &  ' AIM_RAD : ShortWave absorptivities (for dp = 10^5 Pa) :'       &  ' AIM_RAD : ShortWave absorptivities (for dp = 10^5 Pa) :'
511        CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)        CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)
512         CALL WRITE_0D_R8( ABSDRY,INDEX_NONE,'AIM_RAD: ABSDRY =',         CALL WRITE_0D_RL( ABSDRY,INDEX_NONE,'AIM_RAD: ABSDRY =',
513       &  '   /* abs. of dry air (visible band) */')       &  '   /* abs. of dry air (visible band) */')
514         CALL WRITE_0D_R8( ABSAER,INDEX_NONE,'AIM_RAD: ABSAER =',         CALL WRITE_0D_RL( ABSAER,INDEX_NONE,'AIM_RAD: ABSAER =',
515       &  '   /* abs. of aerosols (visible band) */')       &  '   /* abs. of aerosols (visible band) */')
516         CALL WRITE_0D_R8( ABSWV1,INDEX_NONE,'AIM_RAD: ABSWV1 =',         CALL WRITE_0D_RL( ABSWV1,INDEX_NONE,'AIM_RAD: ABSWV1 =',
517       &  '   /* abs. of water vap. (vis. band)(/dq, 1g/kg) */')       &  '   /* abs. of water vap. (vis. band)(/dq, 1g/kg) */')
518         CALL WRITE_0D_R8( ABSWV2,INDEX_NONE,'AIM_RAD: ABSWV2 =',         CALL WRITE_0D_RL( ABSWV2,INDEX_NONE,'AIM_RAD: ABSWV2 =',
519       &  '   /* abs. of water vap.(near IR bd)(/dq, 1g/kg) */')       &  '   /* abs. of water vap.(near IR bd)(/dq, 1g/kg) */')
520         CALL WRITE_0D_R8( ABSCL1,INDEX_NONE,'AIM_RAD: ABSCL1 =',         CALL WRITE_0D_RL( ABSCL1,INDEX_NONE,'AIM_RAD: ABSCL1 =',
521       &  '   /* abs. of clouds (vis.band)(constant term) */')       &  '   /* abs. of clouds (vis.band)(constant term) */')
522         CALL WRITE_0D_R8( ABSCL2,INDEX_NONE,'AIM_RAD: ABSCL2 =',         CALL WRITE_0D_RL( ABSCL2,INDEX_NONE,'AIM_RAD: ABSCL2 =',
523       &  '   /* abs. of clouds (vis.band) (/dw, 1g/kg) */')       &  '   /* abs. of clouds (vis.band) (/dw, 1g/kg) */')
524    
525         WRITE(msgBuf,'(A)')         WRITE(msgBuf,'(A)')
526       &  ' AIM_RAD : LongWave absorptivities (per dp = 10^5 Pa) :'       &  ' AIM_RAD : LongWave absorptivities (per dp = 10^5 Pa) :'
527         CALL WRITE_0D_R8( ABLWIN,INDEX_NONE,'AIM_RAD: ABLWIN =',         CALL WRITE_0D_RL( ABLWIN,INDEX_NONE,'AIM_RAD: ABLWIN =',
528       &  '   /* abs. of air in "window" band */')       &  '   /* abs. of air in "window" band */')
529         CALL WRITE_0D_R8( ABLCO2,INDEX_NONE,'AIM_RAD: ABLCO2 =',         CALL WRITE_0D_RL( ABLCO2,INDEX_NONE,'AIM_RAD: ABLCO2 =',
530       &  '   /* abs. of air in CO2 band */')       &  '   /* abs. of air in CO2 band */')
531         CALL WRITE_0D_R8( ABLWV1,INDEX_NONE,'AIM_RAD: ABLWV1 =',         CALL WRITE_0D_RL( ABLWV1,INDEX_NONE,'AIM_RAD: ABLWV1 =',
532       &  '   /* abs. of Water vap. H2O bd-1(weak)(/dq,1g/kg)*/')       &  '   /* abs. of Water vap. H2O bd-1(weak)(/dq,1g/kg)*/')
533         CALL WRITE_0D_R8( ABLWV2,INDEX_NONE,'AIM_RAD: ABLWV2 =',         CALL WRITE_0D_RL( ABLWV2,INDEX_NONE,'AIM_RAD: ABLWV2 =',
534       &  '   /* abs. of W. vap., H2O bd-2(strong)(/dq,1g/kg)*/')       &  '   /* abs. of W. vap., H2O bd-2(strong)(/dq,1g/kg)*/')
535         CALL WRITE_0D_R8( ABLCL1,INDEX_NONE,'AIM_RAD: ABLCL1 =',         CALL WRITE_0D_RL( ABLCL1,INDEX_NONE,'AIM_RAD: ABLCL1 =',
536       &  '   /* abs. of clouds in window band (const term) */')       &  '   /* abs. of clouds in window band (const term) */')
537         CALL WRITE_0D_R8( ABLCL2,INDEX_NONE,'AIM_RAD: ABLCL2 =',         CALL WRITE_0D_RL( ABLCL2,INDEX_NONE,'AIM_RAD: ABLCL2 =',
538       &  '   /* abs. of clouds in window band (/dw, 1g/kg) */')       &  '   /* abs. of clouds in window band (/dw, 1g/kg) */')
539    
540  C- namelist AIM_PAR_VDI:  C- namelist AIM_PAR_VDI:
541         CALL WRITE_0D_R8( TRSHC, INDEX_NONE,'AIM_VDI:  TRSHC =',         CALL WRITE_0D_RL( TRSHC, INDEX_NONE,'AIM_VDI:  TRSHC =',
542       &  '   /* relaxation time [h] for shallow convection */')       &  '   /* relaxation time [h] for shallow convection */')
543         CALL WRITE_0D_R8( TRVDI, INDEX_NONE,'AIM_VDI:  TRVDI =',         CALL WRITE_0D_RL( TRVDI, INDEX_NONE,'AIM_VDI:  TRVDI =',
544       &  '   /* relaxation time [h] for moisture diffusion */')       &  '   /* relaxation time [h] for moisture diffusion */')
545         CALL WRITE_0D_R8( TRVDS, INDEX_NONE,'AIM_VDI:  TRVDS =',         CALL WRITE_0D_RL( TRVDS, INDEX_NONE,'AIM_VDI:  TRVDS =',
546       &  '   /* relaxation time [h] for super-adiab. cond. */')       &  '   /* relaxation time [h] for super-adiab. cond. */')
547         CALL WRITE_0D_R8( RHGRAD,INDEX_NONE,'AIM_VDI: RHGRAD =',         CALL WRITE_0D_RL( RHGRAD,INDEX_NONE,'AIM_VDI: RHGRAD =',
548       &  '   /* max gradient of rel.humidity (d_RH/d_sigma)*/')       &  '   /* max gradient of rel.humidity (d_RH/d_sigma)*/')
549         CALL WRITE_0D_R8( RHGRAD,INDEX_NONE,'AIM_VDI: RHGRAD =',         CALL WRITE_0D_RL( SEGRAD,INDEX_NONE,'AIM_VDI: SEGRAD =',
550       &  '   /* max grad. of dry static Energy(d_DSE/d_phi)*/')       &  '   /* max grad. of dry static Energy(d_DSE/d_phi)*/')
551    
552    #ifdef ALLOW_AIM_CO2
553    C- namelist AIM_PAR_CO2:
554           CALL WRITE_0D_I( Aim_CO2_Flag, INDEX_NONE,
555         &                 'AIM_PAR_CO2: Aim_CO2_Flag =',
556         &  ' /* CO2 flag, 1: prescribed, 2: interactive  */')
557           CALL WRITE_0D_RL( atmpCO2init,    INDEX_NONE,
558         &                 'AIM_PAR_CO2: atmpCO2init =',
559         &  ' /* pCO2 when prescribed or IC when interactive */')
560    #endif
561    
562  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
563    
564        _END_MASTER(myThid)        _END_MASTER(myThid)
565    
566  C--   Everyone else must wait for the parameters to be loaded  C--   Everyone else must wait for the parameters to be loaded
567        _BARRIER        _BARRIER
568    

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.18

  ViewVC Help
Powered by ViewVC 1.1.22