[an error occurred while processing this directive] *Met Dept Home *NCAS-Climate *NCAS-CMS *FAMOUS Wiki *QUEST ESM
[an error occurred while processing this directive]

Deck by Deck Implementation

General notes:

  • Applied radiation mod adb1f406 - affects DIAG3A and FXCA3A mainly.
  • Have not added own comments to decks, but generally let merge put in 5.2 MOSES 2.2 and tiling header comments. May add comments at end.
  • 5.2 radiation code contains L_CTILE switch. Have copied all this into 4.5 but set L_CTILE to .TRUE. in high-level RAD_CTL routine.
  • Have kept some decks from old MOSES 2 tiling:
    LANDTOGLOBAL
    PTOUV_LAND
    PTOUV_SEA
    

5.2 Coastal Tiling 4.5 Equivalent
Deck Routine 4.5 Deck 4.5 Routine(s)
ATMPHA2
ATMPHB2
ATMOS_PHYSICS1
ATMOS_PHYSICS2
ATMPHY1ATM_PHYS

Coastal tiling changes:

  • Pass in new arguments LAND_ALB and SICE_ALB from D1 to CLD_CTL and RAD_CTL.
  • Pass NLALBS to CLD_CTL.


ATMSTEP2ATM_STEP ATMSTEP1ATM_STEP

Not needed.


BDL_CTL2
DAGBL
BDL_CTL
DIAGNOSTICS_BL
BL_CTL1BL_CTL

Higher level code structure quite different between 4.5 and 5.2. At 5.2, diagnostics processed in DIAGNOSTICS_BL and stuff put into D1 in ATM_STEP

Coastal tiling changes applied:

  • Pass out SURF_HT_FLUX_LAND for use by HYDR_CTL.

  • Set coastal tiling flag L_CTILE to true, and pass to BL_INTCT.

  • Diagnostics calculated in BL_INTCT output straight into STASHWORK:

    (3,339)  RIB_SSI
    (3,391)  TAUX_LAND
    (3,392)  TAUX_SSI
    (3,393)  TAUY_LAND
    (3,394)  TAUY_SSI
    (3,389)  VSHR_LAND
    (3,390)  VSHR_SSI
    (3,347)  E_SSI
    (3,353)  EI_SICE
    (3,343)  FTL_SSI
    (3,381)  RADNET_SICE
    (3,395)  FLANDG
    

  • Diagnostics output as arrays from BL_INTCT, copy into STASHWORK separately:

    (3,337)  SURF_HT_FLUX_LAND
    (3,338)  SURF_HT_FLUX_SICE
    

  • Other arguments to BL_INTCT passed straight from D1:
    D1(JFRAC_LAND)
    D1(JTSTAR_LAND)
    D1(JTSTAR_SEA)
    D1(TSTAR_SICE)
    
    

  • At 4.5, values are set at poles for TSTAR. So we did the same for: TSTAR_LAND, TSTAR_SEA and TSTAR_SICE.

Arguments:

      SUBROUTINE BL_CTL(CLOUD_FRACTION,SNOW_SUBLIMATION,SNOWMELT,       
     &           CANOPY_EVAPORATION,EXT,                                
     &           SOIL_EVAPORATION,SURF_HT_FLUX_LAND,SURF_RADFLUX,            
     &           T1_SD,Q1_SD,WORK1,WORK2,WORK3,                         
     &           PHOTOSYNTH_ACT_RAD,PDF_QC_OR_CF_LIQ,PDF_BS_OR_CF_ICE,  
     &           RADHEAT_RATE,RADHEAT_DIM1,                             
     &           P_FIELDDA,Q_LEVELSDA,BL_LEVELSDA,                      
     &           ST_LEVELSDA,SM_LEVELSDA,INT3,                          
     &           LAND_FIELDDA,                                          
     &           NTILESDA,TILE_FIELDDA,TILE_PTS,TILE_INDEX,             
     &           OLR,LW_DOWN,SW_TILE,ECAN_TILE,MELT_TILE,TILE_FRAC,     
*CALL ARGSIZE                                                           
*CALL ARGD1                                                             
*CALL ARGDUMA                                                           
*CALL ARGDUMO                                                           
*CALL ARGDUMW                                                           
*CALL ARGSTS                                                            
*CALL ARGPTRA                                                           
*CALL ARGPTRO                                                           
*CALL ARGCONA                                                           
*CALL ARGPPX                                                            
*CALL ARGFLDPT                                                          
     &           ICODE,CMESSAGE)


BDYLYR8A
IMPSLV8A
BDY_LAYR
IMP_SOLVER
BL_IC7ABL_INTCT

Coastal tiling changes:

  • Pass out RADNET_SICE as this is a diagnostic at 5.3

  • Set up global land fraction field FLANDG (in SF_EFXPL at 5.3).

  • Set up sea-mean surface temperature TSTAR_SSI. Done in ATMOS_PHYSICS2 at 5.3. Overwritten in SF_IMPL anyway, but used in SF_EXPL to caluclate RHOSTAR.

  • Arguments to VSHR_Z1 (in SF_EXPL at 5.3).

  • Arguments to SF_EXPL.

  • Arguments to SF_IMPL.

  • Calculate RIB_SSI, FTL_SSI, E_SSI, EI_SICE.

Note: Have not passed in L_CTILE as it is not actually used anywhere.

Arguments:

      SUBROUTINE BL_INTCT (                                             
                                                                        
! IN values defining field dimensions and subset to be processed :      
     & P_FIELD,U_FIELD,LAND_FIELD,LAND_FIELD_TRIF,NPFT_TRIF,            
     & P_ROWS,FIRST_ROW,N_ROWS,ROW_LENGTH,                              
                                                                        
! IN values defining vertical grid of model atmosphere :                
     & BL_LEVELS,P_LEVELS,AK,BK,AKH,BKH,DELTA_AK,DELTA_BK,              
     & EXNER,                                                           
                                                                        
! IN soil/vegetation/land surface data :                                
     & LAND_MASK,GATHER,LAND_INDEX,                                     
     & ST_LEVELS,SM_LEVELS,CANHT,CANOPY,CATCH,HCAP,                     
     & HCON,LAI,LAYER_DEPTH,                                            
     & LYING_SNOW,RESIST,ROOTD,SMC,SMVCCL,SMVCST,SMVCWT,                
     & VFRAC,Z0V,SIL_OROG_LAND,L_Z0_OROG,                               
     & HO2R2_OROG,                                                      
                                                                        
! IN sea/sea-ice data :                                                 
     & DI,ICE_FRACT,U_0,V_0,                                            
                                                                        
! IN cloud data :                                                       
     & CF,QCF,QCL,                                                      
     & CCA,CCB,CCT,                                                     
                                                                        
! IN everything not covered so far :                                    
     & RAD_HR,RADHR_DIM1,                                               
     & CO2_MMR,PHOTOSYNTH_ACT_RAD,PSTAR,RAD_SICE,                       
     & TIMESTEP,L_RMBL,L_BL_LSPICE,L_MOM,L_MIXLEN,L_CTILE,                      
                                                                        
! INOUT data :                                                          
     & GS,Q,STHF,STHU,T,T_DEEP_SOIL,TI,TSTAR,U,V,Z0MSEA,                
                                                                        
! OUT Diagnostic not requiring STASH flags :                            
     & CD,CH,E_SEA,ETRAN,FQW,FTL,GPP,H_SEA,                             
     & NPP,RESP_P,RHOKH,RHOKM,RIB,SEA_ICE_HTF,                          
     & TAUX,TAUY,VSHR,ZHT,                                              
     & EPOT,FSMC,                                                       
     & RIB_SSI,TAUX_LAND,TAUX_SSI,TAUY_LAND,TAUY_SSI,VSHR_LAND,VSHR_SSI,
     & E_SSI,EI_SICE,FTL_SSI,RADNET_SICE,FLANDG,                                               
                                                                        
! OUT diagnostic requiring STASH flags :                                
     & FME,SICE_MLT_HTF,SNOMLT_SURF_HTF,LATENT_HEAT,                    
     & Q1P5M,T1P5M,U10M,V10M,                                           
! (IN) STASH flags :-                                                   
     & SFME,SIMLT,SMLT,SLH,SQ1P5,ST1P5,SU10,SV10,                       
                                                                        
! OUT data required for tracer mixing :                                 
     & RHO_ARESIST,ARESIST,RESIST_B,                                    
     & NRML,                                                            
                                                                        
! OUT data required for 4D_VAR :                                        
     & RHO_CD_MODV1,RHO_KM,                                             
                                                                        
! OUT data required elsewhere in UM system :                            
     & BL_TYPE_1,BL_TYPE_2,BL_TYPE_3,BL_TYPE_4,BL_TYPE_5,BL_TYPE_6,     
     & ECAN,EI,ES,EXT,SNOWMELT,                                         
     & SURF_HT_FLUX,SURF_HT_FLUX_LAND,SURF_HT_FLUX_SICE,
     & ZH,T1_SD,Q1_SD,ERROR,                               
                                                                        
! Additional arguments for 7A boundary layer (MOSES II)                 
! IN                                                                    
     & ASTEPS_SINCE_TRIFFID,                                            
     & L_PHENOL,L_TRIFFID,L_NEG_TSTAR,NTILES,                           
     & CANHT_FT,CANOPY_TILE,CATCH_TILE,CS,LAI_FT,                       
     & FRAC,LW_DOWN,SW_TILE,Z0V_TILE,                                   
     & CO2_3D,CO2_DIM,L_CO2_INTERACTIVE,
     & FLAND,                          
! INOUT                                                                 
     & OLR,SNOW_TILE,TSTAR_TILE,                                        
     & G_LEAF_ACC,NPP_FT_ACC,RESP_W_FT_ACC,RESP_S_ACC,
     & TSTAR_LAND,TSTAR_SEA,TSTAR_SICE,                  
! OUT                                                                   
     & ECAN_TILE,EI_TILE,ESOIL_TILE,FTL_TILE,GS_TILE,LE_TILE,MELT_TILE, 
     & RADNET_TILE,G_LEAF,GPP_FT,NPP_FT,RESP_P_FT,RESP_S,RESP_W_FT,     
     & RHO_ARESIST_TILE,ARESIST_TILE,RESIST_B_TILE,                     
     & RIB_TILE,Q1P5M_TILE,T1P5M_TILE,TILE_INDEX,TILE_PTS,TILE_FRAC,
                                                                       
! LOGICAL LTIMER                                                        
     & LTIMER                                                           
     &)


BL_IC6ABL_INTCT BL_IC6ABL_INTCT

Not needed.

Will use changes from BL_IC8A, as it is more similar to the 7A boundary layer code at 4.5.


BL_IC8ABL_INTCT BL_IC7ABL_INTCT

Not needed.

At 5.2, routine is only used to pass arguments to BDY_LAYR.


CNTLATM  CNTLATM 

Include file.

Add LTLEADS flag. Set to .TRUE. in hand-edit


DAGBLDIAGNOSTICS_BL   

Not needed.

Diagnostic processing done in BL_CTL at 4.5.


DAGRADSWDIAGNOSTICS_SW RAD_CTL1RAD_CTL

Radiation code

No equivalent routine in 4.5 code. Added new SW diagnostics in RAD_CTL.


DFPLN3ADIFF_PLANCK_SOURCE DFPLN3ADIFF_PLANCK_SOURCE

Radiation code

Done - 4.5 and 5.2 code identical.

Arguments:

      SUBROUTINE DIFF_PLANCK_SOURCE(N_PROFILE, N_LAYER                  
     &   , N_DEG_FIT, THERMAL_COEFFICIENT                               
     &   , T_REF_PLANCK, T_LEVEL, T_GROUND                              
     &   , T_SOLID, T_SEA, L_CTILE                                      
     &   , PLANCK_SOURCE, DIFF_PLANCK, PLANCK_GROUND                    
     &   , L_IR_SOURCE_QUAD, T, DIFF_PLANCK_2                           
     &   , N_FRAC_SOL_POINT, I_FRAC_SOL_POINT, ICE_FRACTION             
     &   , FLANDG, PLANCK_FREEZE_SEA, PLANCK_LEADS_SEA                  
     &   , NPD_PROFILE, NPD_LAYER, NPD_THERMAL_COEFF                    
     &   )


DIAG3AR2_INIT_COUPLE_DIAG
R2_COUPLE_DIAG
DIAG3AR2_INIT_COUPLE_DIAG
R2_COUPLE_DIAG

Radiation code

Applied radiation mod adb1f406 - calculates fluxes into sea using sea albedos, and removes code for obsolete net solvers. It was included in the 5.2 build.

Mod was amended slightly to avoid clashes with MOSES 2.2 mod are1f406. In each case adb1f406 tried to replace a block of code, and in doing so lines added by are1f406 were lost. New version adb1f406.1 split up these blocks to replace portions before and after extra lines separately. Note that I applied are1f406 *before* adb1f406.1

A slightly different version of the mod (t20db_mod45_adb1f406) is included in the standard FAMOUS and works with the MOSES 1 coastal tiling.

Amended MOSES 2.2 parts slightly:

  • Tidied up indentation and capitalisation (to matchrest of deck and 5.2 code).
  • Removed L_NET flag from MOSES II SW diagnostics (as no longer passed into routine).

Tiling done - after applying extra mod, 4.5 and 5.2 code identical.

Arguments:

      SUBROUTINE R2_INIT_COUPLE_DIAG(N_PROFILE                          
     &  , SEA_FLUX                                                      
     &  , L_SURFACE_DOWN_FLUX, SURFACE_DOWN_FLUX                        
     &  , L_SURF_DOWN_CLR, SURF_DOWN_CLR                                
     &  , L_SURF_UP_CLR, SURF_UP_CLR                                    
     &  , L_FLUX_BELOW_690NM_SURF                                       
     &  , FLUX_BELOW_690NM_SURF, FL_SEA_BELOW_690NM_SURF                
     &  , L_MOSES_II                                                    
     &  , SURF_VIS_DIR, SURF_VIS_DIF, SURF_NIR_DIR, SURF_NIR_DIF        
     &  , NPD_PROFILE                                                   
     & )                                                               

      SUBROUTINE R2_COUPLE_DIAG(N_PROFILE, ISOLIR                       
     &  , ALBEDO_FIELD_DIFF, ALBEDO_FIELD_DIR                           
     &  , ALBEDO_SEA_DIFF, ALBEDO_SEA_DIR                               
     &  , FLANDG, ICE_FRACTION                                          
     &  , PLANCK_FREEZE_SEA, PLANCK_LEADS_SEA                           
     &  , PLANCK_AIR_SURFACE, THERMAL_SOURCE_GROUND                     
     &  , FLUX_DOWN, FLUX_UP, FLUX_DIRECT                               
     &  , FLUX_DOWN_CLEAR, FLUX_UP_CLEAR, FLUX_DIRECT_CLEAR             
     &  , WEIGHT_690NM                                                  
     &  , SEA_FLUX                                                      
     &  , L_SURFACE_DOWN_FLUX, SURFACE_DOWN_FLUX                        
     &  , L_SURF_DOWN_CLR, SURF_DOWN_CLR                                
     &  , L_SURF_UP_CLR, SURF_UP_CLR                                    
     &  , L_FLUX_BELOW_690NM_SURF                                       
     &  , FLUX_BELOW_690NM_SURF, FL_SEA_BELOW_690NM_SURF                
     &  , L_MOSES_II, L_CTILE                                           
     &  , SURF_VIS_DIR, SURF_VIS_DIF, SURF_NIR_DIR, SURF_NIR_DIF        
     &  , NPD_PROFILE                                                   


FCDCH8AFCDCH_SEA FCDCH7AFCDCH_SEA

The 7A code (vn4.5) and 8A code (vn5.2) are quite different. However only coastal tiling change to code is replacement of LAND_MASK with FLANDG, so did the same thing at 4.5.

At 4.5, all we want out of this routine is CD and CH. The 5.2 version gives us CDV and CHV, which the comments suggest are equivalent, just calculated (very) differently. 5.2 doesn't feel the need to multiply these variables the land fraction anywhere and just uses it as a mask, so what we've done is probably alright.

New arguments:

      SUBROUTINE FCDCH_SEA (P_POINTS,P_FIELD,P1,FLANDG,              
     &                      RIB,DB,VSHR,Z0M,Z0H,Z0F,                    
     &                      ZH,Z1_UV,Z1_TQ,CD,CH,                       
     &                      V_S,RECIP_L_MO,LTIMER)

FILL3AR2_SET_THERMODYNAMIC FILL3AR2_SET_THERMODYNAMIC

Radiation code

Done -

Changes between 4.5 (with MOSES 2.2) code and 5.2 considerable, however tiling only makes small changes so able to slot them in.

New argument list:


      SUBROUTINE R2_SET_THERMODYNAMIC(                                  
     &     N_PROFILE, NLEVS, I_GATHER, L_BOUNDARY_TEMPERATURE           
     &   , PSTAR, TSTAR, TSTAR_SOLID, TSTAR_SEA
     &   , AB, BB, AC, BC, PEXNER, TAC                    
     &   , P, T, T_BDY, T_SURFACE, T_SOLID, T_SEA, D_MASS                       
     &   , NPD_FIELD, NPD_PROFILE, NPD_LAYER                            
     &   )                                                              


FTSA1AFTSA FTSA1AFTSA

Radiation code

Done - 4.5 and 5.2 code identical.

Arguments:

      SUBROUTINE FTSA (                                                 
     &     LAND, FLANDG, AICE,                                          
     &     TSTAR, TSTAR_SICE, SFA, MDSA, COSZ, S,                       
     &     ALPHAM,ALPHAC,ALPHAB,DTICE,L_MOSES_II,L_SSICE_ALBEDO,        
     &     VERSION,                                                     
     &     L1, L2, SA_LAND, SA_SICE, SAOS)


FXCA3AFLUX_CALC FXCA3AFLUX_CALC

Radiation code

Minor amendment in adb1f406.1 to insert header comment in correct place. Previously inserted *before* an earlier comment.

Tiling done - only real difference between 4.5 and 5.2 code is appearance of L_NET flag, although only passed around as dummy arg.

Coastal tiling notes:

  • 5.2 adds include file c_0_dg_c.h, but as far as I can see it is not used, so have not added at 4.5.
  • At 5.2, FLUX_BELOW_690NM_SURF declared twice. Must be a mistake.

Arguments:

      SUBROUTINE FLUX_CALC(IERR                                         
!                       Logical Flags for Processes                     
     &   , L_RAYLEIGH, L_AEROSOL, L_GAS, L_CONTINUUM                    
     &   , L_CLOUD, L_DROP, L_ICE                                       
!                       Angular Integration                             
     &   , I_ANGULAR_INTEGRATION, I_2STREAM, L_2_STREAM_CORRECT         
     &   , L_RESCALE, N_ORDER_GAUSS                                     
!                       Treatment of Scattering                         
     &   , I_SCATTER_METHOD, L_SWITCH_SCATTER                           
!                       Options for treating clouds                     
     &   , L_GLOBAL_CLOUD_TOP, N_CLOUD_TOP_GLOBAL                       
!                       Options for Solver                              
     &   , I_SOLVER                                                     
!                       General Spectral Properties                     
     &   , N_BAND, I_FIRST_BAND, I_LAST_BAND, WEIGHT_BAND               
!                       General Atmospheric Properties                  
     &   , N_PROFILE, N_LAYER                                           
     &   , L_LAYER, L_CLOUD_LAYER                                       
     &   , P, T, T_GROUND, T_SOLID, T_SEA, T_LEVEL, D_MASS              
!                       Spectral Region                                 
     &   , ISOLIR                                                       
!                       Solar Fields                                    
     &   , SEC_0, SOLAR_TOA, SOLAR_FLUX_BAND, RAYLEIGH_COEFFICIENT      
!                       Infra-red Fields                                
     &   , N_DEG_FIT, THERMAL_COEFFICIENT, T_REF_PLANCK                 
     &   , L_IR_SOURCE_QUAD                                             
!                       Gaseous Absorption                              
     &   , N_ABSORB, I_GAS_OVERLAP, I_GAS                               
     &   , GAS_MIX_RATIO, N_BAND_ABSORB, INDEX_ABSORB                   
     &   , I_BAND_ESFT, W_ESFT, K_ESFT, I_SCALE_ESFT                    
     &   , I_SCALE_FNC, SCALE_VECTOR                                    
     &   , P_REFERENCE, T_REFERENCE                                     
!                       Doppler Broadening                              
     &   , L_DOPPLER, DOPPLER_CORRECTION                                
!                       Surface Fields                                  
     &   , L_SURFACE, I_SURFACE, I_SPEC_SURFACE, SURFACE_ALBEDO         
     &   , ALBEDO_FIELD_DIFF, ALBEDO_FIELD_DIR                          
     &   , N_DIR_ALBEDO_FIT, DIRECT_ALBEDO_PARM                         
     &   , EMISSIVITY_GROUND, EMISSIVITY_FIELD                          
!                       Continuum Absorption                            
     &   , N_BAND_CONTINUUM, INDEX_CONTINUUM, INDEX_WATER               
     &   , K_CONTINUUM, I_SCALE_FNC_CONT, SCALE_CONTINUUM               
     &   , P_REF_CONTINUUM, T_REF_CONTINUUM                             
!                       Properties of Aerosols                          
     &   , N_AEROSOL, AEROSOL_MIX_RATIO                                 
     &   , AEROSOL_ABSORPTION, AEROSOL_SCATTERING, AEROSOL_ASYMMETRY    
     &   , I_AEROSOL_PARAMETRIZATION, NHUMIDITY, HUMIDITIES             
!                       Properties of Clouds                            
     &   , N_CONDENSED, TYPE_CONDENSED                                  
     &   , I_CLOUD, I_CLOUD_REPRESENTATION, W_CLOUD, FRAC_CLOUD         
     &   , CONDENSED_MIX_RATIO, CONDENSED_DIM_CHAR                      
     &   , I_CONDENSED_PARAM, CONDENSED_PARAM_LIST                      
!                       Fluxes Calculated                               
     &   , FLUX_DIRECT, FLUX_DOWN, FLUX_UP                              
!                       Options for Clear-sky Fluxes                    
     &   , L_CLEAR, I_SOLVER_CLEAR                                      
!                       Clear-sky Fluxes Calculated                     
     &   , FLUX_DIRECT_CLEAR, FLUX_DOWN_CLEAR, FLUX_UP_CLEAR            
!                       Arrays specific to the UM                       
!                       Arrays for Coupling                             
     &   , N_FRAC_SOL_POINT, I_FRAC_SOL_POINT, ICE_FRACTION             
     &   , ALBEDO_SEA_DIFF, ALBEDO_SEA_DIR, FLANDG                      
     &   , SEA_FLUX                                                     
!                       Arrays for diagnostics specific to the UM       
     &   , L_FLUX_BELOW_690NM_SURF, WEIGHT_690NM                        
     &   , FLUX_BELOW_690NM_SURF, FL_SEA_BELOW_690NM_SURF               
     &   , L_MOSES_II, L_CTILE                                         
     &   , SURF_VIS_DIR, SURF_VIS_DIF, SURF_NIR_DIR, SURF_NIR_DIF       
     &   , L_SURFACE_DOWN_FLUX, SURFACE_DOWN_FLUX                       
     &   , L_SURF_DOWN_CLR, SURF_DOWN_CLR                               
     &   , L_SURF_UP_CLR, SURF_UP_CLR                                   
!                       Dimensions of Arrays                            
     &   , NPD_PROFILE, NPD_LAYER, NPD_COLUMN                           
     &   , NPD_BAND                                                     
     &   , NPD_SPECIES                                                  
     &   , NPD_ESFT_TERM, NPD_SCALE_FNC, NPD_SCALE_VARIABLE             
     &   , NPD_CONTINUUM                                                
     &   , NPD_AEROSOL_SPECIES, NPD_HUMIDITIES                          
     &   , NPD_CLOUD_PARAMETER                                          
     &   , NPD_THERMAL_COEFF                                            
     &   , NPD_SURFACE, NPD_ALBEDO_PARM                                 
     &   )


IMPSLV6AIMP_SOLVER   

Not needed.

Will use changes from IMPSLV8A, as it is more similar to the 7A boundary layer code at 4.5.


IMPS_IC6AIMPS_INTCT   

Not needed.

Will use changes from IMPSLV8A, as it is more similar to the 7A boundary layer code at 4.5.


IMPS_IC8AIMPS_INTCT   

Not needed.

Only used to pass arguments to IMP_SOLVER.


IMP_CTL2NI_IMP_CTL   

Not needed.

Coastal tiling only passes new arguments to IMPS_INTCT and DIAGNOSTICS_BL.


IMSFPT8AIM_SF_PT IMSFPT8AIM_SF_PT

4.5 and 5.2 code is very similar except for:

  • Array indexes
  • Extra arguments at 5.2:
    • RHOKM_1_U_V replaced by RHOKM_U_1 and RHOKM_V_1
    • CQ_CM_1 replaced by CQ_CM_U_1 and CQ_CM_V_1

Applied coastal tiling changes:

  • LAND_MASK replaced by FLANDG, FLANDG_U, FLANDG_V
  • TAU_X_1 replaced by TAUX_1, TAUX_LAND and TAUX_SSI
  • TAU_Y_1 replaced by TAUY_1, TAUY_LAND and TAUY_SSI
  • New variables: FTL_LAND and FQW_LAND

Notes:

  • Arrays FLANDG_U and FLANDG_V dimensioned as (U_V_FIELD)

Arguments:

     SUBROUTINE IM_SF_PT (                                             
     & P_FIELD,P1,U_V_FIELD,U1_V1                                       
     &,P_POINTS,U_V_POINTS,ROW_LENGTH,LAND_FIELD                        
     &,LAND_INDEX,NTILES,TILE_INDEX,TILE_PTS                            
     &,FLANDG,TILE_FRAC,SNOW_TILE,ICE_FRACT
     &,GAMMA_1,ALPHA1,ALPHA1_SICE,ASHTF,ASHTF_TILE                      
     &,RESFT,RHOKPM,RHOKPM_SICE                                         
     &,RHOKM_1_U_V,RHOKH_1,RHOKH1_SICE                                  
     &,CT_CTQ_1,DQW_1,DTL_1,CQ_CM_1,DU_1,DV_1
     &,FLANDG_UV
     &,FQW_GB,FTL_GB,
     &,TAUX_1,TAUX_LAND,TAUX_SSI,TAUY_1,TAUY_LAND,TAUY_SSI
     &,FQW_TILE,FTL_TILE,FQW_ICE,FTL_ICE,E_SEA,H_SEA                    
     &,LTIMER                                                           
     &)                                                                 


LWRAD3AR2_LWRAD
R2_SET_SURFACE_FIELD_LW
LWRAD3AR2_LWRAD
R2_SET_SURFACE_FIELD_LW

Radiation code

Considerable differences between 4.5 and 5.2 code, but seemed possible to apply coastal tiling changes.

This deck (along with SWRAD3A and RAD_CTL2) commented out in ang0f503.mf77, as it was encompassed into radiation mod adb1f503.mf77 for the 5.3 build. Possibly the code included in the coastal tiling mod, was unfinished and never used in that form, which might explain why some of the changes did not seem to be quite right. Also since there were several other developments at the time, some of the tiling code will have been written to be consistent with these other developments.

With this in mind, first used merge to put in changes, but then differenced 5.2 and 5.2_C decks using tkdiff, and went through each change one by one, checking 4.5 deck.

Resolved several problems:

  1. ang0f503 deletes declaration of T_SURFACE, however array is still used in 4.5(_C), and oddly enough in 5.2_C. Furthermore it still appears in the 5.5 library. I do not think it should have been deleted and therefore I left the lines of code in 4.5_C. Also commented out deletion in ang0f503.mf77.

  2. Several questionable variables appear in 5.2_C:

    • FLANDG_G
    • ICE_FRACTION_G
    • LWSEA_LOCAL

    They replace FLANDG, ICE_FRACTION and LWSEA in calls to R2_SET_SURFACE_FIELD_LW and FLUX_CALC, and only FLANDG_G is initialised in the tiling mod. Arrays are declared in adb1f503, for new gather/scatter thing. I don't think it is relevant to coastal tiling, so new arrays are not included anywhere.

  3. Dummy arguments passed to FLUX_CALC include several DUMMY1Ds rather than DUMMYs Not really relavent to tiling and DUMMY1D not declared so used usual DUMMY variable.

  4. In calculation of LWSEA contributions over open sea and land/sea ice, 5.2_C uses gather/scatter arrays (see above) and 5.2/5.2_C uses EPSILON(LWOUT) rather than TOL_TEST as a comparison. As a solution, I put in 5.3 code but in 4.5 style, i.e. using original arrays and TOL_TEST as a condition. The resulting code is exactly what FAMOUS currently does (MOSES 1 coastal tiling).

  5. Same problems as above in calculation of fractional open sea coverage in R2_SET_SURFACE_FILED_LW. Same solution.

New argument lists:

      SUBROUTINE R2_LWRAD(IERR                                          
!                       Gaseous Mixing Ratios                           
     &   , H2O, CO2, O3                                                 
     &   , CO2_DIM1, CO2_DIM2, CO2_3D, L_CO2_3D                         
     &   , N2O_MIX_RATIO, CH4_MIX_RATIO                                 
     &   , CFC11_MIX_RATIO, CFC12_MIX_RATIO, CFC113_MIX_RATIO           
     &   , HCFC22_MIX_RATIO, HFC125_MIX_RATIO, HFC134A_MIX_RATIO        
!                       Thermodynamic Variables                         
     &   , TAC, PEXNER, TSTAR, TSTAR_SOLID, TSTAR_SEA, L_CTILE, 
     &   , PSTAR, AB, BB, AC, BC                    
!                       Options for treating clouds                     
     &   , L_GLOBAL_CLOUD_TOP, GLOBAL_CLOUD_TOP                         
!                       Stratiform Cloud Fields                         
     &   , L_CLOUD_WATER_PARTITION                                      
     &   , LCA_AREA, LCA_BULK, LCCWC1, LCCWC2                           
!                       Convective Cloud Fields                         
     &   , CCA, CCCWP, CCB, CCT, L_3D_CCA                               
!                       Surface Fields                                  
     &   , LAND, FLANDG, ICE_FRACTION                                   
     &   , LYING_SNOW                                                   
!                       Aerosol Fields                                  
     &   , L_CLIMAT_AEROSOL, N_LEVELS_BL                                
     &   , L_USE_SULPC_DIRECT, L_USE_SULPC_INDIRECT                     
     &   , SULP_DIM1,SULP_DIM2                                          
     &   , ACCUM_SULPHATE, AITKEN_SULPHATE, DISS_SULPHATE               
     &,L_USE_SOOT_DIRECT, SOOT_DIM1, SOOT_DIM2, FRESH_SOOT, AGED_SOOT   
!                       Level of tropopause                             
     &   , TRINDX                                                       
!                       Spectrum                                        
*CALL LWSARG3A                                                          
!                       Algorithmic Options                             
*CALL LWCARG3A                                                          
     &   , PTS                                                          
!                       General Diagnostics                             
     &   , TOTAL_CLOUD_COVER, L_TOTAL_CLOUD_COVER                       
     &   , CLEAR_OLR, L_CLEAR_OLR                                       
     &   , SURFACE_DOWN_FLUX, L_SURFACE_DOWN_FLUX                       
     &   , SURF_DOWN_CLR, L_SURF_DOWN_CLR                               
     &   , CLEAR_HR, L_CLEAR_HR                                         
     &   , NET_FLUX_TROP, L_NET_FLUX_TROP                               
     &   , DOWN_FLUX_TROP, L_DOWN_FLUX_TROP                             
!                       Physical Dimensions                             
     &   , N_PROFILE, NLEVS, NCLDS                                      
     &   , NWET, NOZONE, NPD_FIELD                                      
     &   , NPD_PROFILE, NPD_LAYER, NPD_COLUMN                           
     &   , N_CCA_LEV                                                    
!                       Output Fields                                   
     &   , OLR, LWSEA, LWOUT                                            
     &   ) 


         SUBROUTINE R2_SET_SURFACE_FIELD_LW(                               
     &     N_PROFILE, N_BAND                                            
     &   , I_SURFACE, I_SPEC_SURFACE, L_SURFACE                         
     &   , EMISSIVITY_FIELD, ALBEDO_FIELD_DIR, ALBEDO_FIELD_DIFF        
     &   , ALBEDO_SEA_DIFF, ALBEDO_SEA_DIR                              
     &   , FLANDG                                                     
     &   , N_FRAC_SOL_POINT, I_FRAC_SOL_POINT, ICE_FRACTION             
     &   , NPD_PROFILE, NPD_BAND_LW, NPD_SURFACE_LW                     
     &   )                                                       


PHIMH8APHI_M_H_SEA PHIMH6APHI_M_H_SEA

Not needed.

Routine is not usd for 7A Boundary Layer code (vn4.5).


RAD_CTL2NI_RAD_CTL RAD_CTL1
CLDCTL1
RAD_CTL
CLD_CTL

Radiation code

RAD_CTL

The 4.5 and 5.2 code is quite different, so I put in the coastal tiling by hand. Practically all of the 5.2 -> 5.2+C changes have been applied to 4.5, including these new diagnostics:

(1,257) NET DOWN SW FLUX: LAND
(1,258) NET DN SW FLX:SEAICE:SEA MEAN
(1,259) NET DN SW SOLID SFC FLUX BELOW 690NM
(1,260) NET DN SW O SEA FLX BLW 690NM:SEA MN

Differences I encountered between 4.5 and 5.2 code:

  • Data fields often referenced from D1, whereas at 5.2 they are copied out of D1 at a higher level and passed in to NI_RAD_CTL as variables.
  • Diagnostic processing. At 4.5, values copied into STASHWORK and STASH rotuine called which processes all diagnostics. At 5.2, varaiables passed into DIAGNOSTICS_SW routine and processed from there.
  • Use of RADINCS array to store values (used in CLD_CTL routine at next timestep?). At 5.2, values put into individual variables and passed out of the routine.

Coastal tiling changes, in the order they appear in the code.

  1. New arguments: LAND_ALB and SICE_ALB calculated on radiative timesteps, and passed out for use by CLD_CTL on non-radiative timesteps.
  2. New variables:

    LAND_ALB(P_FIELDDA,NLALBS),   ! Mean land albedo            
    SICE_ALB(P_FIELDDA,NLALBS),   ! Mean sea-ice albedo         
    FLANDG(P_FIELDDA),            ! Land fraction               
    ICE_FRACT(P_FIELDDA)
    T_SOL_RAD(P_FIELDDA)     ! Effective surface radiative tem
    TSTAR_SICE(P_FIELDDA)    ! Sea-ice sfc temperature (K)
    FRACSOLID(P_FIELDDA)     ! Solid surface fraction in gridbox
    SW_NET_LAND(P_FIELDDA)   ! SW net local flux over land
    SW_NET_SICE(P_FIELDDA)   ! SW net local flux over sea-ice
    SW_NET_RTS(P_FIELDDA)    ! net SW on tiles
    SW_DOWN_RTS(P_FIELDDA)   ! down SW on tiles
    ALBSOLID    !Mean solid surface albedo
    
    

  3. Set L_CTILE to .TRUE. if MOSES 2.2 boundary layer (7A OR 8A).

  4. Calculate global land fraction field FLANDG using LAND_TO_GLBAL rotuine, from MOSES 1 tiling.

  5. Calculate FRACSOLID, solid surface fraction in grid box.

  6. New arguments passed to FTSA: pass in new variables FLANDG, LAND_ALB, SICE_ALB and TSTAR_SICE from D1 array.

  7. New arguments passed to R2_SWRAD (similarly to FTSA).

  8. New diagnostics (1,259) and (1,260) output straight from R2_SWRAD into STASHWORK.

  9. Calculate SW_DOWN_RTS (down SW on tiles) and SW_NET_RTS (net SW on tiles). These are used to calculate LAND_ALB, which is in turn used in calculation of SURF_RADFLUX etc.

  10. In calculation of NET_ATM_FLUX for SW, mutliply sea field by sea-fraction (1.-FLANDG(I)).

  11. New calculation of SURF_RADFLUX. Also calculate SW_NET_LAND and SW_NET_SICE. Copy into STASHWORK as new diagnostics (1,257) and (1,258).

  12. In calcualtion of diagnostic (1,201), mutliply sea field by sea-fraction.

  13. Calculate T_SOL_RAD, effective surface radiative temperature. Replaces TSTAR_RAD and TSTAR_ICE. It is passed into R2_LWRAD, where it is TSTAR_SOLID.

  14. New arguments to R2_LWRAD, including "0.5 threshold land mask" (D1(JLAND0P5+JS_LOCAL(I)) as land-mask.

  15. Update calculation of DOLR, TOA outward LW - surface upward LW for land and sea-ice.

  16. In calculation of NET_ATM_FLUX for LW, mutliply sea field by sea-fraction (1.-FLANDG(I)).

  17. In calculation of diagnostic (2,201), mutliply sea field by sea-fraction (1.-FLANDG(I)).

Arguments:

      SUBROUTINE RAD_CTL(CLOUD_FRACTION,SIN_TRUE_LATITUDE,DAY_FRACTION, 
     &             COS_ZENITH_ANGLE, NETSW, SURF_RADFLUX, LIST, SWITCH, 
     &             AREA_CLOUD_FRACTION,                                 
     &             NTILESDA,TILE_FIELDDA,DOLR,LW_DOWN,SW_TILE,
     &             LAND_ALB,SICE_ALB,           
     &             PHOTOSYNTH_ACT_RAD,RADHEAT_RATE,                     
     &             P_FIELDDA,P_LEVELSDA,Q_LEVELSDA,OZONE_LEVELSDA,      
     &             CLOUD_LEVELSDA,BL_LEVELSDA,L_RADHEAT,RADHEAT_DIM1,   
     &             SWBANDS, STASHLEN, CO2_DIM1, CO2_DIM2,               
     & SULP_DIM1, SULP_DIM2, SOOT_DIM1, SOOT_DIM2,                      
     &             NLALBS, W1236_DIM, SAL_DIM,                          
*CALL ARGSIZE                                                           
*CALL ARGD1                                                             
*CALL ARGDUMA                                                           
*CALL ARGDUMO                                                           
*CALL ARGDUMW                                                           
*CALL ARGSTS                                                            
*CALL ARGPTRA                                                           
*CALL ARGPTRO                                                           
*CALL ARGCONA                                                           
*CALL ARGPPX                                                            
*CALL ARGFLDPT                                                          
*IF DEF,FRADIO                                                          
     &             RADINCS,                                             
*ENDIF                                                                  
     &             ICODE,CMESSAGE)

CLD_CTL

Updates radiation diagnostics on non-radiative timesteps. No equivalent routine at 5.2, as non-radiative timesteps still calculated in RAD_CTL. Have copied appropriate calculations from RAD_CTL into CLD_CTL.

Coastal tiling changes (in the order they appear in the code).

  1. Take LAND_ALB and SICE_ALB as inputs, and field dimension NLALBS. These are calculated in RAD_CTL on rad timesteps.

  2. Calculate global land fraction field FLANDG, soild fraction field FRACSOLID, ice-fraction field ICE_FRACT. Required for calculations.

  3. Calculate SW_NET_LAND and SW_NET_SICE and copy into STASH as diagnostics (1,257) and (1,258).

  4. Calculate SURF_RADFLUX for sea-ice points. Changed calcs slightly to mirror RAD_CTL. Quantity is passed up to BL code where it is renamed RAD_SICE ("surface net radiation [...] on sea-ice fraction"), and passed it to SF_EXPL and SF_IMPL.

Arguments:

      SUBROUTINE CLD_CTL(CLOUD_FRACTION,SURF_RADFLUX,PHOTOSYNTH_ACT_RAD,
     &           AREA_CLOUD_FRACTION,
     &           NTILESDA,TILE_FIELDDA,DOLR,LW_DOWN,SW_TILE,            
     &           LAND_ALB,SICE_ALB,
     &           PDF_QC_OR_CF_LIQ,PDF_BS_OR_CF_ICE,                     
     &           N_POLAR_VALUES,S_POLAR_VALUES,                         
     &           RADHEAT_RATE,BL_LEVELSDA,                              
     &           L_RADHEAT,RADHEAT_DIM1,NLALBS,P_FIELDDA,                      
     &           P_LEVELSDA,Q_LEVELSDA,ROW_LENGTHDA,TOT_LEVELS,INT9,    
*CALL ARGSIZE                                                           
*CALL ARGD1                                                             
*CALL ARGDUMA                                                           
*CALL ARGDUMO                                                           
*CALL ARGDUMW                                                           
*CALL ARGSTS                                                            
*CALL ARGPTRA                                                           
*CALL ARGPTRO                                                           
*CALL ARGCONA                                                           
*CALL ARGPPX                                                            
*CALL ARGFLDPT                                                          
*IF DEF,FRADIO                                                          
     &           RADINCS,                                               
*ENDIF                                                                  
     &    COS_ZENITH_ANGLE,                                             
     &           ICODE,CMESSAGE)


RPANCA1AREPLANCA RPANCA1AREPLANCA

4.5 and 5.2 code varies only slightly.

Applied 5.2 coastal tiling changes:

  • New arguments passed INOUT: FLAND_CTILE, TSTAR_LAND_CTILE, TSTAR_SEA_CTILE, and TSTAR_SICE_CTILE.
  • Initialise TSTAR_SSI (sea mean surface temperature).
  • Set up global fractional land field FLAND_G, and sea-mask SEAUse SEA rather than .NOT.LAND in initialisations.
  • Replace TSTAR in places with sea or land fields.
  • Various calculations involving TSTAR, TSTAR_LAND, TSTAR_SEA and TSTAR_SICE.

Arguments:

       SUBROUTINE REPLANCA(I_YEAR,I_MONTH,I_DAY,I_HOUR,                 
     &                     I_MINUTE,I_SECOND,I_DAY_NUMBER,              
     &                     ANCIL_REFTIME,OFFSET_STEPS,                  
     &                     P_FIELD,P_ROWS,U_FIELD,D1,LAND,              
*IF -DEF,RECON                                                          
     &                     A_STEP,LAND_FIELD,STEPS_PER_HR,              
     &                     FLAND_CTILE,                                 
     &                     TSTAR_LAND_CTILE,TSTAR_SEA_CTILE,            
     &                     TSTAR_SICE_CTILE,                            
*ENDIF                                                                  
     &                     ICE_FRACTION,TSTAR,TSTAR_ANOM,               
     &                     NS_SPACE,FIRST_LAT,                          
     &                     LEN1_LOOKUP,LEN_FIXHD,LEN_INTHD,             
     &                     LEN_REALHD,LEN_D1,FIXHD,INTHD,REALHD,        
     &                     LOOKUP,RLOOKUP,FTNANCIL,LOOKUP_START,        
     &                     NDATASETS,NLOOKUPS,                          
*CALL ARGPPX                                                            
*IF DEF,RECON                                                           
     &                     LPOLARCHK,                                   
     &                     IOUNIT,ICODE,CMESSAGE,LCAL360) ! Intent Out  
*ELSE                                                                   
     &                     ICODE,CMESSAGE,LCAL360)        ! Intent Out  
*ENDIF


SCREEN8ASCREEN_TQ SCREEN7ASCREEN_TQ

Apart from array indexes, 4.5 and 5.2 code looks the same.

Coastal tiling applied:

  • LAND_MASK replaced by FLANDG
  • TSTAR replaced by TSTAR_SSI

Arguments:

      SUBROUTINE SCREEN_TQ (                                            
     & P_POINTS,P_FIELD,P1,LAND1,LAND_PTS,LAND_FIELD,NTILES,            
     & LAND_INDEX,TILE_INDEX,TILE_PTS,FLANDG,
     & SQ1P5,ST1P5,CHR1P5M,CHR1P5M_SICE,PSTAR,QW_1,RESFT,               
     & TILE_FRAC,TL_1,TSTAR_SSI,TSTAR_TILE, 
     & Z0H,Z0H_TILE,Z0M,Z0M_TILE,Z1,                                    
     & Q1P5M,Q1P5M_TILE,T1P5M,T1P5M_TILE                                
     & )


SFEVAP8ASF_EVAP SFEVAP7ASF_EVAP

Apart from array indexes, 4.5 and 5.2 code looks the same.

Coastal tiling applied. Only change is additional argument FLAND used in calculations of FTL_1 and FQW_1.

Arguments:

      SUBROUTINE SF_EVAP (                                              
     & P_POINTS,P_FIELD,P1,LAND1,LAND_PTS,LAND_FIELD,NTILES,            
     & LAND_INDEX,TILE_INDEX,TILE_PTS,NSHYD,LTIMER,FLAND,                  
     & ASHTF_TILE,CANOPY,DTRDZ_1,FLAKE,FRACA,SNOW_TILE,RESFS,           
     & RESFT,RHOKH_1,TILE_FRAC,SMC,WT_EXT_TILE,TIMESTEP,                
     & FQW_1,FQW_TILE,FTL_1,FTL_TILE,TSTAR_TILE,                        
     & ECAN,ECAN_TILE,ELAKE_TILE,ESOIL,ESOIL_TILE,EI_TILE,EXT           
     & )


SFEXCH8ASF_EXCH SFEXCH7ASF_EXCH

Code mostly the same between 4.5 and 5.2, except array indexing and some variables. Structure of routine is the same.

Applied coastal tiling changes.

Arguments:

      SUBROUTINE SF_EXCH (                                              
     & P_POINTS,P_FIELD,P1,LAND1,LAND_PTS,LAND_FIELD,NTILES,LAND_INDEX, 
     & TILE_INDEX,TILE_PTS,FLAND,FLANDG,                                
     & BQ_1,BT_1,CANHC_TILE,CANOPY,CATCH,DZSOIL,FLAKE,GC,HCONS,         
     & HO2R2_OROG,ICE_FRACT,SNOW_TILE,PSTAR,QW_1,RADNET,RADNET_TILE,    
     & SIL_OROG,SMVCST,TILE_FRAC,TIMESTEP,T_1,Q_1,QCF_1,QCL_1,          
     & TL_1,TI,TS1,
     & TSTAR_TILE,TSTAR_LAND,TSTAR_SEA,TSTAR_SICE,TSTAR_SSI,            
     & VFRAC_TILE,VSHR_LAND,VSHR_SSI,ZH,Z0_TILE,Z1_UV,Z1_TQ,LAND_MASK,  
     & SU10,SV10,SQ1P5,ST1P5,SFME,LTIMER,L_Z0_OROG,Z0MSEA,              
     & ALPHA1,ALPHA1_SICE,ASHTF,ASHTF_TILE,CD,CH,CDR10M,                
     & CHR1P5M,CHR1P5M_SICE,E_SEA,FME,FQW_1,FQW_TILE,FQW_ICE,           
     & FTL_1,FTL_TILE,FTL_ICE,FRACA,H_BLEND_OROG,H_SEA,                 
     & RESFS,RESFT,RIB,RIB_TILE,                                        
     & FB_SURF,U_S,Q1_SD,T1_SD,TV1_SD,Z0M_EFF,                          
     & Z0H,Z0H_TILE,Z0M,Z0M_TILE,RHO_ARESIST,ARESIST,RESIST_B,          
     & RHO_ARESIST_TILE,ARESIST_TILE,RESIST_B_TILE,                     
     & RHO_CD_MODV1,RHOKH_1,RHOKH_1_SICE,RHOKM_1,RHOKM_LAND,RHOKM_SSI,
     & RHOKPM,RHOKPM_SICE,    
     & NRML                                                             
     & )                                                                


SFEXPL8ASF_EXPL SFEXPL8A
VSHRZ7A
SF_EXPL
VSHR_Z1

Some of what is done at the beginning of the 5.2 routine (Triffid stuff etc), is done in BL_INTCT at 4.5 - this includes the calculations of VSHR_LAND and VSHR_SSI, for which there is a separate 4.5 routine VSHR_Z1.

SF_EXPL

Coastal tiling changes:

  • Replace LAND_MASK with FLANDG.
  • Pass new arguments to SF_EXCH.
  • Interpolate RHOKM_LAND, RHOKM_SSI and FLANDG to UV grid.
  • Calculate TAUX_LAND, TAUX_SSI, TAUY_LAND and TAUY_SSI.
  • Change calculation of TAUX_1 and TAUY_1 to use land and ssi components.
  • In calculation of RHOKH, multiply sea points by (1.0 - FLANDG(I)) sea fraction, and multiply TILE_FRAC by FLANDG(I) land fraction.

Note: At 4.5, combined UV quantity RHOKM_UV_1 is calculated, whereas at 5.2, there are separate U and V fields. Therefore, we have used combined fields FLANDG_UV and RHOKM_UV_LAND and RHOKM_UV_SSI.

Arguments:

      SUBROUTINE SF_EXPL (                                              
                                                                        
! IN values defining field dimensions and subset to be processed :      
     & P_FIELD,U_FIELD,LAND_FIELD,ROW_LENGTH,                           
     & N_P_ROWS,N_U_ROWS,P_POINTS,P1,LAND1,LAND_PTS,U_POINTS,U1,        
                                                                        
! IN values defining vertical grid of model atmosphere :                
     & AK_1,BK_1,AKH_1,BKH_1,DELTA_AK_1,DELTA_BK_1,                     
     & EXNER,                                                           
                                                                        
! IN soil/vegetation/land surface data :                                
     & LAND_INDEX,                                                      
     & LAND_MASK,L_Z0_OROG,                                             
     & NTILES,TILE_INDEX,TILE_PTS,SM_LEVELS,                            
     & CANHC_TILE,CANOPY,CATCH,FLAKE,GC,HCON,HO2R2_OROG,                
     & FLAND,FLANDG,                                                    
     & SNOW_TILE,SIL_OROG_LAND,SMVCST,STHF,STHU,                        
     & TILE_FRAC,VFRAC_TILE,Z0_TILE,                                    
                                                                        
! IN sea/sea-ice data :                                                 
     & ICE_FRACT,U_0,V_0,                                               
                                                                        
! IN cloud data :                                                       
     & CF_1,QCF_1,QCL_1,                                                
                                                                        
! IN everything not covered so far :                                    
     & PSTAR,LW_DOWN,RAD_SICE,SW_TILE,TIMESTEP,
     & VSHR,VSHR_LAND,VSHR_SSI,ZH,                 
     & Q_1,T_1,T_SOIL,TI,                                               
     & TSTAR,TSTAR_LAND,TSTAR_SEA,TSTAR_SICE,TSTAR_SSI,
     & TSTAR_TILE,U_1,V_1,                                        
     & L_BL_LSPICE,                                                     
                                                                        
! IN STASH flags :-                                                     
     & SFME,SQ1P5,ST1P5,SU10,SV10,                                      
                                                                        
! INOUT data :                                                          
     & Z0MSEA,                                                          
                                                                        
! OUT Diagnostic not requiring STASH flags :                            
     & CD,CH,E_SEA,QW_1,TL_1,FQW_1,                                     
     & FTL_1,FTL_TILE,LE_TILE,H_SEA,RADNET_SICE,RADNET_TILE,            
     & RHOKM_UV_1,RIB,RIB_TILE,TAUX_1,TAUY_1,                           
     & TAUX_LAND,TAUX_SSI,TAUY_LAND,TAUY_SSI,                           
                                                                        
! OUT diagnostic requiring STASH flags :                                
     & FME,                                                             
                                                                        
! OUT data required for tracer mixing :                                 
     & RHO_ARESIST,ARESIST,RESIST_B,                                    
     & RHO_ARESIST_TILE,ARESIST_TILE,RESIST_B_TILE,                     
     & NRML,                                                            
                                                                        
! OUT data required for 4D-VAR :                                        
     & RHO_CD_MODV1,                                                    
                                                                        
! OUT data required elsewhere in UM system :                            
     & FB_SURF,U_S,T1_SD,Q1_SD,TV1_SD,                                  
                                                                        
! OUT data required elsewhere in boundary layer or surface code         
     & ALPHA1,ALPHA1_SICE,ASHTF,ASHTF_TILE,DTRDZ_1,FQW_TILE,            
     & FQW_ICE,FTL_ICE,TSTAR_TILE_OLD,FRACA,RESFS,RESFT,                
     & RHOKH,RHOKH_TILE,RHOKH_SICE,RHOKPM,RHOKPM_SICE,                  
     & Z1,H_BLEND_OROG,Z0H,Z0H_TILE,Z0M,Z0M_TILE,Z0M_EFF,               
     & CDR10M_UV,CHR1P5M,CHR1P5M_SICE,                                  
     & FLANDG_UV,                                               
                                                                        
! LOGICAL LTIMER                                                        
     & LTIMER                                                           
     & )

VSHR_Z1

Amend calculation of VSHR. New arguments:

  • OUT: VSHR_LAND, VSHR_SSI
  • IN: FLANDG

Arguments:

      SUBROUTINE VSHR_Z1 (                                              
     & P_FIELD,U_FIELD,LTIMER,                                          
     & N_ROWS,FIRST_ROW,ROW_LENGTH,FLANDG, 
     & AKH,BKH,EXNER,PSTAR,Q,QCF,QCL,T,U_1,V_1,U_0,V_0,                 
     & VSHR,VSHR_LAND,VSHR_SSI,Z1
     & )


SFFLUX8ASF_FLUX_LAND
SF_FLUX_SEA
SFFLUX7ASF_FLUX_LAND
SF_FLUX_SEA

Only difference between 4.5 and 5.2 code is array indexing.

Applied coastal tiling changes:

  • In SF_FLUX_LAND: new argument FLAND.

  • In SF_FLUX_SEA: variable FLANDG replaces LAND_MASK and TSTAR_SICE replaces TSTAR_ICE

Arguments:

      SUBROUTINE SF_FLUX_LAND (                 
     & P_FIELD,LAND_FIELD,TILE_PTS,FLAND,LAND_INDEX,TILE_INDEX,
     & CANHC,DZSOIL,HCONS,QS1,QSTAR,QW_1,RADNET,RESFT,RHOKH_1,SMVCST,   
     & SNOW,TILE_FRAC,TIMESTEP,TL_1,TS1,TSTAR,VFRAC,Z0H,Z0M_EFF,Z1_TQ,  
     & FQW_1_GB,FTL_1_GB,                                               
     & ALPHA1,ASHTF,FQW_1,FTL_1,RHOKPM,LTIMER                           
     & )                                                                

      SUBROUTINE SF_FLUX_SEA (                      
     & P_POINTS,P_FIELD,P1,NSICE,SICE_INDEX,FLANDG,                  
     & ICE_FRACT,QS1,QSTAR_ICE,QSTAR_SEA,QW_1,RADNET,RHOKH_1,TI,        
     & TL_1,TSTAR_SICE,TSTAR_SEA,Z0H_ICE,Z0M_ICE,Z0H_SEA,Z0M_SEA,Z1_TQ, 
     & ALPHA1,ASHTF,E_SEA,FQW_ICE,FQW_1,FTL_ICE,FTL_1,H_SEA,RHOKPM,     
     & LTIMER)                                                          


SFIMPL8ASF_IMPL SFIMPL8ASF_IMPL

4.5 and 5.2 code is very similar, except for:

  • Array indexes
  • Arguments:
    • RHOKM_UV_1 replaced by RHOKM_U_1 and RHOKM_V_1
    • DTRDZ_1 replaced by DTRDZ_CHARNEY_GRID
    • CDR10M_UV replaced by CDR10M_U and CDR10M_V
    • CQ_CM_1 replaced by CQ_CM_U_1 and CQ_CM_V_1
    • RHOKH, RHOKH_MIX new
  • TSTAR_TILE_OLD passed IN at 4.5, but taken as the value of TSTAR at 5.2.

Coastal tiling applied:

  • Argument TSTAR replaced by TSTAR_LAND, TSTAR_SEA, TSTAR_SICE and TSTAR_SSI
  • New variables: EI_LAND and EI_SICE.

Notes:

  • Dimensioned all U,V arrays as (U_FIELD)
  • I have not inclued variables RHOKM_U_LAND etc, that are declared but not used at 5.2. In fact they remain declared but unused in 6.1 PUM.

Arguments:

      SUBROUTINE SF_IMPL (                                              
                                                                        
! IN values defining field dimensions and subset to be processed :      
     & P_FIELD,U_FIELD,LAND_FIELD,ROW_LENGTH,                           
     & P_POINTS,P1,LAND1,LAND_PTS,U_POINTS,U1,                          
                                                                        
! IN soil/vegetation/land surface data :                                
     & LAND_INDEX,LAND_MASK,                                            
     & NTILES,TILE_INDEX,TILE_PTS,SM_LEVELS,                            
     & CANHC_TILE,CANOPY,FLAKE,SMC,                                     
     & TILE_FRAC,WT_EXT_TILE,                                           
     & FLAND,FLANDG,                     
                                                                        
! IN sea/sea-ice data :                                                 
     & DI,ICE_FRACT,U_0,V_0,                                            
                                                                        
! IN everything not covered so far :                                    
     & PSTAR,LW_DOWN,RAD_SICE,SW_TILE,TIMESTEP,                         
     & T_SOIL,QW_1,TL_1,U_1,V_1,RHOKM_UV_1,                             
     & ALPHA1,ALPHA1_SICE,ASHTF,ASHTF_TILE,                             
     & DTRDZ_1,DU_1,DV_1,FQW_TILE,FQW_ICE,FTL_ICE,TSTAR_TILE_OLD,       
     & FRACA,RESFS,RESFT,RHOKH_TILE,RHOKH_SICE,RHOKPM,RHOKPM_SICE,      
     & Z1,Z0H,Z0H_TILE,Z0M,Z0M_TILE,CDR10M_UV,CHR1P5M,CHR1P5M_SICE,     
     & CT_CTQ_1,DQW_1,DTL_1,CQ_CM_1,                                    
     & L_NEG_TSTAR,                                                     
     & FLANDG_UV,                     
                                                                        
! IN STASH flags :-                                                     
     & SIMLT,SMLT,SLH,SQ1P5,ST1P5,SU10,SV10,                            
                                                                        
! INOUT data :                                                          
     & TI,TSTAR,        
     & TSTAR_LAND,TSTAR_SEA,TSTAR_SICE,TSTAR_SSI,
     & TSTAR_TILE,SNOW_TILE,                                            
     & LE_TILE,RADNET_SICE,RADNET_TILE,                                 
     & E_SEA,FQW_1,FTL_1,FTL_TILE,H_SEA,OLR,TAUX_1,TAUY_1,              
     & TAUX_LAND,TAUX_SSI,TAUY_LAND,TAUY_SSI,
                                                                        
! OUT Diagnostic not requiring STASH flags :                            
     & ECAN,EI_TILE,ESOIL_TILE,                                         
     & SEA_ICE_HTF,SURF_HT_FLUX,SURF_HT_FLUX_LAND,SURF_HT_FLUX_SICE,
                                                                        
! OUT diagnostic requiring STASH flags :                                
     & SICE_MLT_HTF,SNOMLT_SURF_HTF,LATENT_HEAT,                        
     & Q1P5M,Q1P5M_TILE,T1P5M,T1P5M_TILE,U10M,V10M,                     
                                                                        
! OUT data required elsewhere in UM system :                            
     & ECAN_TILE,EI,ESOIL,EXT,SNOWMELT,MELT_TILE,                       
     & ERROR,                                                           
                                                                        
! LOGICAL LTIMER                                                        
     & LTIMER                                                           
     & )                                                                


SFLINT8ASFL_INT_LAND
SFL_INT_SEA
SFLINT7ASFL_INT_LAND
SFL_INT_SEA

The 4.5 code SFLINT7A and 5.2 code SFLINT8A are quite different, but possibly not too important. The comments and logic imply that it's part of a purely diagnostic calculation, so it shouldn't screw up the model.

In SFL_INT_LAND the only coastal tiling change is multiplication by FLANDG(I)*TILE_FRAC(L) factor in the calculation of CDR10M.

SFLINT_SEA, by analogy with the 5.2 calculation, also needs this factor, although it's not as clear where to put it. We have put it at the end of the IF(FLANDG(I).LT.1.0) clause. Also replace LAND_MASK with FLANDG, as in 5.2.

New arguments:

      SUBROUTINE SFL_INT_LAND (                                         
     & P_FIELD,LAND_FIELD,TILE_PTS,TILE_INDEX,LAND_INDEX,FLANDG,               
     & VSHR,CD_STD,CD,CH,RIB,TILE_FRAC,WIND_PROFILE_FACTOR,             
     & Z0M_EFF,Z0M,Z0H,Z0F,Z1,                                          
     & RECIP_L_MO,V_S,V_S_STD,                                          
     & SU10,SV10,ST1P5,SQ1P5,                                           
     & CDR10M,CHR1P5M,LTIMER                                            
     & )
      SUBROUTINE SFL_INT_SEA (                                          
     & P_POINTS,P_FIELD,P1,FLANDG,                                   
     & VSHR,CD,CH,RIB,Z0M,Z0H,Z0F,Z1,                                   
     & RECIP_L_MO,V_S,                                                  
     & SU10,SV10,ST1P5,SQ1P5,                                           
     & CDR10M,CHR1P5M,LTIMER                                            
     & )


SFMELT8ASF_MELT SFMELT7ASF_MELT

Apart from array indexes, 4.5 and 5.2 code looks the same.

Coastal tiling applied:

  • TSTAR replaced by TSTAR_SEA, TSTAR_SSI
  • EI replaced by EI_LAND and EI_SICE

Arguments:

      SUBROUTINE SF_MELT (                                              
     & POINTS,P_FIELD,P1,LAND_FIELD,NTILES,LAND_INDEX                   
     &,TILE_INDEX,TILE_PTS,LAND_MASK,LTIMER,SIMLT,SMLT,FLANDG                  
     &,ALPHA1,ALPHA1_SICE,ASHTF,ASHTF_TILE,DTRDZ_1,ICE_FRACT            
     &,RHOKH_1,RHOKH_1_SICE,TILE_FRAC,TIMESTEP                          
     &,EI_TILE,FQW_1,FQW_ICE,FTL_1,FTL_ICE,FTL_TILE                     
     &,TSTAR_SEA,TSTAR_SSI,TSTAR_TILE,SNOW_TILE                         
     &,EI_LAND,EI_SICE                                                  
     &,SICE_MLT_HTF,SNOMLT_SURF_HTF,SNOWMELT,MELT_TILE                  
     & )


SFRIB8ASF_RIB_SEA SFRIB7ASF_RIB_SEA

Only difference between 4.5 and 5.2 code is array indexing. Was able to apply coastal tiling changes by hand. Tiling basically amounts to change of two variables:

  • FLANDG replaces LAND_MASK
  • TSTAR_SICE replaces TSTAR_ICE

Arguments:

       SUBROUTINE SF_RIB_SEA (                                      
     & ROW_LENGTH,ROWS,FLANDG,NSICE,SICE_INDEX,                         
     & BQ_1,BT_1,ICE_FRACT,QSTAR_ICE,QSTAR_SEA,QW_1,TL_1,TSTAR_SICE,    
     & TSTAR_SEA,VSHR,Z0H_ICE,Z0H_SEA,Z0M_ICE,Z0M_SEA,Z1_TQ,Z1_UV,      
     & RIB_SEA,RIB_ICE,DB_SEA,DB_ICE,LTIMER                             
     & )                                                                


SICEHT8ASICE_HTF SICEHT7ASICE_HTF

Apart from array indexes, 4.5 and 5.2 code looks the same.

Coastal tiling applied:

  • SURF_HT_FLUX replaced by SURF_HT_FLUX_SICE
  • TSTAR replaced by TSTAR_SEA and TSTAR_SICE

Arguments:

      SUBROUTINE SICE_HTF (                                             
     & POINTS,P_FIELD,P1,FLANDG,SIMLT,           
     & DI,ICE_FRACTION,SURF_HT_FLUX_SICE,
     & TSTAR_SEA,TSTAR_SICE,TIMESTEP,
     & TI,SICE_MLT_HTF,SEA_ICE_HTF,                                     
     & LTIMER)


STATMPT1SET_ATM_POINTERS STATMPT1SET_ATM_POINTERS

4.5 and 5.2 code very similar.

Add new coastal tiling fields to go into D1, with STASH codes:

(0,505)  FRAC_LAND                       
(0,506)  TSTAR_LAND                 
(0,507)  TSTAR_SEA                         
(0,508)  TSTAR_SICE                          
(0,509)  SICE_ALB                    
(0,510)  LAND_ALB


STDEV8ASTDEV1_LAND
STDEV1_SEA
STDEV7ASTDEV1_LAND
STDEV1_SEA

Only difference between 4.5 and 5.2 code is array indexing.

Applied coastal tiling changes:

  • In ST_DEV1_SEA: variable FLANDG replaces LAND_MASK.

  • In ST_DEV1_LAND: new argument FLAND.

Arguments:

      SUBROUTINE STDEV1_SEA (                                   
     & P_POINTS,P_FIELD,P1,FLANDG,                                   
     & BQ_1,BT_1,FQW_1,FTL_1,ICE_FRACT,RHOKM_1,RHOSTAR,VSHR,            
     & Z0MSEA,Z0_ICE,Z1_TQ,                                             
     & Q1_SD,T1_SD,LTIMER                                               
     & )                                                                

      SUBROUTINE STDEV1_LAND (                                
     & P_FIELD,LAND_FIELD,TILE_PTS,LAND_INDEX,TILE_INDEX,FLAND,           
     & BQ_1,BT_1,FQW_1,FTL_1,RHOKM_1,RHOSTAR,VSHR,Z0M,Z1_TQ,TILE_FRAC,  
     & Q1_SD,T1_SD,LTIMER                                               
     & )                                                                


SWRAD3AR2_SWRAD
R2_SET_SURFACE_FIELD_SW
SWRAD3AR2_SWRAD
R2_SET_SURFACE_FIELD_SW

Radiation code

Quite a few differences between 4.5 MOSES 2.2 code and 5.2 code. Ran merge, then looked at difference between 5.2 and 5.2_C, and checked each one was put into 4.5 correctly.

List of 5.2 coastal tiling changes, with notes on 4.5 implementation (problems, inconsistencies etc):

  1. Arguments to R2_SWRAD. Extra variables added and some name changes. Order of arguments differs slightly from 4.5 to 5.2, for example, L_MOSES_II in completely different place. My approach was to leave arguments in 4.5 as they were, but slot in new variables in same place as in 5.2 (as far as possible) and replace variable names as in 5.2. See argument lists below for result.

  2. Include file c_mdi.h added, but as far as I can see not used and is not in 5.3 build. Therefore have not put into 4.5 tiling.

  3. Declarations for new variables:

    • LAND0P5, SEA, FLANDG, FLANDG_G, ICE_FRACTION_G, LAND0P5_G
    • LAND_ALB and SICE_ALB replace LAND_AND_ICE_ALBEDO
    • L_CTILE
    • FL_SOLID_BELOW_690NM_SURF, FL_SEA_BELOW_690NM_SURF, FL_SEA_BELOW_690NM_SURF_G
    • ALBEDOSOLID, FRACSOLID, FLUXSOLID
    • N_FRAC_SOL_POINT and I_FRAC_SOL_POINT replace N_FRAC_ICE_POINT and I_FRAC_ICE_POINT

  4. Extra dummy arguments to R2_SET_THERMODYNAMIC and FLUX_CALC. As in R2_LWRAD use DUMMY rather than DUMMY1D or DUMMY2D and check matches up to subroutine definitions.

  5. Passed LAND0P5 rather than LAND to R2_SET_AEROSOL_FIELD. Also pass LAND0P5_G rather than LAND_G to R2_SET_CLOUD_FIELD.

  6. Pass in new arguments to FLUX_CALC.

  7. Calculations of FL_SEA_BELOW_690NM_SURF and FL_SOLID_BELOW_690NM_SURF, SWSEA (open sea flux) and "DOWNWARD FLUX OF PHOTOSYTHETICALLY ACTIVE RADIATION". Put in new 5.2_C code, but use N_PROFILE over N_POINTS for array length in calls to R2_ZERO_1D.

  8. Subroutine R2_SET_SURFACE_FIELD_SW. Followed procedure in cases above. New arguments and declarations. Calculations of "gathered arrays": LAND0P5_G, FLANDG_G, ICE_FRACTION_G New calculations for "albedo fields" over where there is a combination of open sea, sea-ice and land, and separate albedos for open sea.

New subroutine arguments:


      SUBROUTINE R2_SWRAD(IERR                                          
!                       Mixing Ratios                                   
     &   , H2O, CO2, O3, O2_MIX_RATIO                                   
     &   , CO2_DIM1, CO2_DIM2, CO2_3D, L_CO2_3D                         
!                       Pressure Fields                                 
     &   , PSTAR, AB, BB, AC, BC                                        
!                       Temperatures                                    
     &   , TAC                                                          
!                       Options for treating clouds                     
     &   , L_GLOBAL_CLOUD_TOP, GLOBAL_CLOUD_TOP                         
!                       Stratiform Cloud Fields                         
     &   , L_CLOUD_WATER_PARTITION                                      
     &   , LCA_AREA, LCA_BULK, LCCWC1, LCCWC2                           
!                       Convective Cloud Fields                         
     &   , CCA, CCCWP, CCB, CCT, L_3D_CCA                               
!                       Surface Fields                                  
     &   , LAND_ALBEDO, L_CTILE                                                                              
     &   , LAND_ALB, SICE_ALB, FLANDG                                   
     &   , OPEN_SEA_ALBEDO, ICE_FRACTION, LAND, LAND0P5, LYING_SNOW     
!                       Solar Fields                                    
     &   , COSZIN, LIT, LIST, SCS                                       
!                       Aerosol Fields                                  
     &   , L_CLIMAT_AEROSOL, N_LEVELS_BL                                
     &   , L_USE_SULPC_DIRECT, L_USE_SULPC_INDIRECT                     
     &   , SULP_DIM1, SULP_DIM2                                         
     &   , ACCUM_SULPHATE, AITKEN_SULPHATE, DISS_SULPHATE               
     &,L_USE_SOOT_DIRECT, SOOT_DIM1, SOOT_DIM2, FRESH_SOOT, AGED_SOOT   
!                       Level of tropopause                             
     &   , TRINDX                                                       
!                       Spectrum                                        
*CALL SWSARG3A                                                          
!                       Algorithmic options                             
*CALL SWCARG3A                                                          
     &   , PTS                                                          
!                       General Diagnostics                             
     &   , SOLAR_OUT_TOA, L_SOLAR_OUT_TOA                               
     &   , SOLAR_OUT_CLEAR, L_SOLAR_OUT_CLEAR                           
     &   , FLUX_BELOW_690NM_SURF,  FL_SOLID_BELOW_690NM_SURF            
     &   , FL_SEA_BELOW_690NM_SURF, L_FLUX_BELOW_690NM_SURF             
     &   , SURFACE_DOWN_FLUX, L_SURFACE_DOWN_FLUX                       
     &   , SURF_DOWN_CLR, L_SURF_DOWN_CLR                               
     &   , SURF_UP_CLR, L_SURF_UP_CLR                                   
     &   , LAYER_CLOUD_LIT, L_LAYER_CLOUD_LIT                           
     &   , CONV_CLOUD_LIT, L_CONV_CLOUD_LIT                             
     &   , TOTAL_CLOUD_COVER, L_TOTAL_CLOUD_COVER                       
     &   , CLEAR_HR, L_CLEAR_HR                                         
     &   , NET_FLUX_TROP, L_NET_FLUX_TROP                               
     &   , UP_FLUX_TROP, L_UP_FLUX_TROP                                 
!                       Microphysical Flag                              
     &   , L_MICROPHYSICS                                               
!                       Microphysical Diagnostics                       
     &   , RE_CONV, RE_CONV_FLAG, RE_STRAT, RE_STRAT_FLAG               
     &   , WGT_CONV, WGT_CONV_FLAG, WGT_STRAT, WGT_STRAT_FLAG           
     &   , LWP_STRAT, LWP_STRAT_FLAG                                    
     &   , WEIGHTED_RE, WEIGHTED_RE_FLAG                                
     &   , SUM_WEIGHT_RE, SUM_WEIGHT_RE_FLAG                            
     &   , NTOT_DIAG, NTOT_DIAG_FLAG                                    
     &   , STRAT_LWC_DIAG, STRAT_LWC_DIAG_FLAG                          
     &   , SO4_CCN_DIAG, SO4_CCN_DIAG_FLAG                              
     &   , COND_SAMP_WGT, COND_SAMP_WGT_FLAG                            
!                       Physical Dimensions                             
     &   , NLIT                                                         
     &   , N_PROFILE, NLEVS, NCLDS                                      
     &   , NWET, NOZONE                                                 
     &   , NPD_FIELD, NPD_PROFILE, NPD_LAYER, NPD_COLUMN                
     &   , N_CCA_LEV                                                    
!                       Working Dimensions for Diagnostics              
     &   , NPDWD_CL_PROFILE                                             
!                       Output                                          
     &   , SURF_DOWN_SW                                                 
     &   , NETSW, SWSEA, SWOUT                                          
     &   )                                                              


      SUBROUTINE R2_SET_SURFACE_FIELD_SW(                               
     &     N_BAND                                                       
     &   , NLIT, LIST                                                   
     &   , I_SURFACE, I_SPEC_SURFACE, L_SURFACE                         
     &   , L_MICROPHYSICS, L_MOSES_II, SAL_DIM, L_CTILE                                                    
     &   , LAND, LAND0P5, OPEN_SEA_ALBEDO                               
     &   , LAND_ALB, SICE_ALB                                           
     &   , FLANDG, ICE_FRACTION                                         
     &   , LAND_ALBEDO, WEIGHT_690NM                                    
     &   , EMISSIVITY_FIELD, ALBEDO_FIELD_DIR, ALBEDO_FIELD_DIFF        
     &   , LAND_G, LAND0P5_G, FLANDG_G, ICE_FRACTION_G                  
     &   , ALBEDO_SEA_DIFF, ALBEDO_SEA_DIR                              
     &   , NPD_FIELD, NPD_PROFILE, NPD_BAND_SW, NPD_SURFACE_SW          
     &   )  


TSTMSK1TSTMSK TSTMAK1TSTMSK

Used to add coastal tiling flag to model. Therefore not needed here.


TYPPTRA  TYPPTRA 

Comdeck containing pointers to fileds in D1.

Added the following coastal tiling pointers:

JFRAC_LAND
JTSTAR_LAND
JTSTAR_SEA
JTSTAR_SICE
JSICE_ALB
JLAND_ALB


UPANCIL1UP_ANCIL UPANCIL1UP_ANCIL

4.5 and 5.2 code reasonably similar but changes are straightforward here anyway.

Passed new arguments FLANDG, TSTAR_LAND, TSTAR_SEA and TSTAR_SICE straight in from D1.


[an error occurred while processing this directive]