C $Header: /u/gcmpack/MITgcm/model/src/packages_init_fixed.F,v 1.88 2017/04/07 16:09:14 jmc Exp $ C $Name: $ #include "PACKAGES_CONFIG.h" #include "CPP_OPTIONS.h" CBOP C !ROUTINE: PACKAGES_INIT_FIXED C !INTERFACE: SUBROUTINE PACKAGES_INIT_FIXED( myThid ) C !DESCRIPTION: \bv C *==========================================================* C | SUBROUTINE PACKAGES_INIT_FIXED C | o Does initialisation of package-related fixed fields C *==========================================================* C \ev C !CALLING SEQUENCE: C PACKAGES_INIT_FIXED C | C |-- RUNCLOCK_INIT C | C |-- CAL_INIT_FIXED C | C |-- DIAGNOSTICS_INIT_EARLY C |-- DIAGNOSTICS_MAIN_INIT C | C |-- GAD_INIT_FIXED C | C |-- MOM_INIT_FIXED C | C |-- CD_CODE_INIT_FIXED C | C |-- OBCS_INIT_FIXED C | C |-- SHAP_FILT_INIT_FIZED C | C |-- ZONAL_FILT_INIT C | C |-- EXF_INIT_FIXED C | C |-- CHEAPAML_INIT_FIXED C | C |-- OPPS_INIT C | C |-- PP81_INIT_FIXED C | C |-- KL10_INIT_FIXED C | C |-- MY82_INIT_FIXED C | C |-- GGL90_INIT_FIXED C | C |-- KPP_INIT_FIXED C | C |-- GMREDI_INIT_FIXED C | C |-- BBL_INIT_FIXED C | C |-- DWNSLP_INIT_FIXED C | C |-- SEAICE_COST_INIT_FIXED C | C |-- SMOOTH_INIT_FIXED C | C |-- ECCO_COST_INIT_FIXED C | C |-- PROFILES_INIT_FIXED C | C |-- FLT_INIT_FIXED C | C |-- LONGSTEP_INIT_FIXED C | C |-- PTRACERS_INIT_FIXED C | C |-- GCHEM_INIT_FIXED C | C |-- RBCS_INIT_FIXED C | C |-- FRAZIL_INIT_FIXED C | C |-- SEAICE_INIT_FIXED C | C |-- SALT_PLUME_INIT_FIXED C | C |-- SHELFICE_INIT_FIXED C | C |-- STREAMICE_INIT_FIXED C | C |-- ICEFRONT_INIT_FIXED C | C |-- THSICE_INIT_FIXED C | C |-- LAND_INIT_FIXED C | C |-- ATM2D_INIT_FIXED C | C |-- AIM_INITIALISE C | C |-- ATM_PHYS_INIT_FIXED C | C |-- FIZHI_INIT_FIXED C | C |-- GRIDALT_INITIALISE C | C |-- TIMEAVE_INIT_FIXED C | C |-- REGRID_INIT_FIXED C | C |-- LAYERS_INIT_FIXED C | C |-- CPL_INIT_FIXED C | C |-- OASIS_INIT_FIXED C | C |-- EMBED_FILES_INIT C | C |-- MYPACKAGE_INIT_FIXED C | C |-- CTRL_INIT C |-- CTRL_ADMTLM C | C |-- DIAGNOSTICS_INIT_FIXED C !USES: IMPLICIT NONE C === Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" C !INPUT/OUTPUT PARAMETERS: C === Routine arguments === C myThid :: my Thread Id Number INTEGER myThid CEOP #ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_ENTER('PACKAGES_INIT_FIXED',myThid) #endif #ifdef ALLOW_RUNCLOCK IF ( useRunClock ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('RUNCLOCK_INIT',myThid) # endif CALL RUNCLOCK_INIT( myThid ) ENDIF #endif #ifdef ALLOW_CAL C-- Initialise the calendar package. IF ( useCAL ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('CAL_INIT_FIXED',myThid) # endif CALL CAL_INIT_FIXED( myThid ) ENDIF #endif /* ALLOW_CAL */ #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) THEN C- needs to call DIAGNOSTICS_INIT_EARLY before all package-diag-init calls # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('DIAGNOSTICS_INIT_EARLY',myThid) # endif CALL DIAGNOSTICS_INIT_EARLY( myThid ) # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('DIAGNOSTICS_MAIN_INIT',myThid) # endif CALL DIAGNOSTICS_MAIN_INIT( myThid ) ENDIF #endif #ifdef ALLOW_GENERIC_ADVDIFF C-- Initialize fixed params for GAD # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('GAD_INIT_FIXED',myThid) # endif CALL GAD_INIT_FIXED( myThid ) #endif #ifdef ALLOW_MOM_COMMON C-- Initialize fixed params for Momentum pkgs (common, fluxform, vecinv) IF ( momStepping ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('MOM_INIT_FIXED',myThid) # endif CALL MOM_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_CD_CODE IF (useCDscheme) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('CD_CODE_INIT_FIXED',myThid) # endif CALL CD_CODE_INIT_FIXED(myThid) ENDIF #endif C-- Initialize fixed arrays for OBCS #ifdef ALLOW_OBCS IF (useOBCS) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('OBCS_INIT_FIXED',myThid) # endif CALL OBCS_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_SHAP_FILT C-- Shapiro filter initialisation IF (useSHAP_FILT) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('SHAP_FILT_INIT_FIXED',myThid) # endif CALL SHAP_FILT_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_ZONAL_FILT C-- Latitude circle filter initialisation IF (useZONAL_FILT) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('ZONAL_FILT_INIT',myThid) # endif CALL ZONAL_FILT_INIT(myThid) ENDIF #endif #ifdef ALLOW_EXF C-- Initialize fixed arrays for EXF IF ( useEXF ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('EXF_INIT_FIXED',myThid) # endif CALL EXF_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_CHEAPAML IF ( useCheapAML ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('CHEAPAML_INIT_FIXED',myThid) # endif CALL CHEAPAML_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_OPPS IF (useOPPS) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('OPPS_INIT',myThid) # endif CALL OPPS_INIT( myThid ) ENDIF #endif /* ALLOW_OPPS */ #ifdef ALLOW_PP81 C-- Initialize fixed arrays for PP81 IF ( usePP81 ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('PP81_INIT_FIXED',myThid) # endif CALL PP81_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_KL10 C-- Initialize fixed arrays for KL10 IF ( useKL10 ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('KL10_INIT_FIXED',myThid) # endif CALL KL10_INIT_FIXED( myThid ) ENDIF #endif /* ALLOW_KL10 */ #ifdef ALLOW_MY82 C-- Initialize fixed arrays for MY82 IF ( useMY82 ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('MY82_INIT_FIXED',myThid) # endif CALL MY82_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_GGL90 C-- Initialize fixed arrays for GGL90 IF ( useGGL90 ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('GGL90_INIT_FIXED',myThid) # endif CALL GGL90_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_KPP C-- Initialize fixed arrays for KPP IF ( useKPP ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('KPP_INIT_FIXED',myThid) # endif CALL KPP_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_GMREDI C-- Initialize fixed arrays for GM-Redi IF ( useGMRedi ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('GMREDI_INIT_FIXED',myThid) # endif CALL GMREDI_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_BBL C-- Initialize fixed arrays for BBL pkg IF ( useBBL ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('BBL_INIT_FIXED',myThid) # endif CALL BBL_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_DOWN_SLOPE C-- Initialize fixed arrays for Down-Slope pkg IF ( useDOWN_SLOPE ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('DWNSLP_INIT_FIXED',myThid) # endif CALL DWNSLP_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_SEAICE C-- Initialise ecco-specific cost function. C-- This needs to preceed the call ctrl_init C-- in order to provide the weight files IF (useSEAICE) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('SEAICE_COST_INIT_FIXED',myThid) # endif CALL SEAICE_COST_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_SMOOTH IF (useSMOOTH) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('SMOOTH_INIT_FIXED',myThid) # endif CALL SMOOTH_INIT_FIXED(myThid) ENDIF #endif /* ALLOW_SMOOTH */ #ifdef ALLOW_ECCO IF (useECCO) THEN C-- Initialise ecco-specific cost function. This needs to preceed C the call ctrl_init in order to provide the weight files # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('ECCO_COST_INIT_FIXED',myThid) # endif CALL ECCO_COST_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_PROFILES IF (usePROFILES) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('PROFILES_INIT_FIXED',myThid) # endif CALL PROFILES_INIT_FIXED( myThid ) ENDIF #endif C-- Old place where CTRL_INIT & CTRL_ADMTLM used to be called #ifdef ALLOW_FLT C-- Initialise fixed array for Float pkg IF ( useFLT ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('FLT_INIT_FIXED',myThid) # endif CALL FLT_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_LONGSTEP IF (usePTRACERS) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('LONGSTEP_INIT_FIXED',myThid) # endif CALL LONGSTEP_INIT_FIXED(myThid) ENDIF #endif #ifdef ALLOW_PTRACERS IF (usePTRACERS) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('PTRACERS_INIT_FIXED',myThid) # endif CALL PTRACERS_INIT_FIXED(myThid) ENDIF #endif #ifdef ALLOW_GCHEM IF (useGCHEM) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('GCHEM_INIT_FIXED',myThid) # endif CALL GCHEM_INIT_FIXED(myThid) ENDIF #endif #ifdef ALLOW_RBCS IF (useRBCS) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('RBCS_INIT_FIXED',myThid) # endif CALL RBCS_INIT_FIXED(myThid) ENDIF #endif #ifdef ALLOW_FRAZIL IF (useFRAZIL) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('FRAZIL_INIT_FIXED',myThid) # endif CALL FRAZIL_INIT_FIXED(myThid) ENDIF #endif #ifdef ALLOW_SEAICE IF (useSEAICE) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('SEAICE_INIT_FIXED',myThid) # endif CALL SEAICE_INIT_FIXED(myThid) ENDIF #endif #ifdef ALLOW_SALT_PLUME IF (useSALT_PLUME) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('SALT_PLUME_INIT_FIXED',myThid) # endif CALL SALT_PLUME_INIT_FIXED(myThid) ENDIF #endif #ifdef ALLOW_SHELFICE IF (useShelfIce) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('SHELFICE_INIT_FIXED',myThid) # endif CALL SHELFICE_INIT_FIXED( myThid ) ENDIF #endif /* ALLOW_SHELFICE */ #ifdef ALLOW_STREAMICE IF (useStreamIce) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('STREAMICE_INIT_FIXED',myThid) # endif #ifndef ALLOW_OPENAD CALL STREAMICE_INIT_FIXED( myThid ) #else CALL OPENAD_STREAMICE_INIT_FIXED( myThid ) #endif ENDIF #endif /* ALLOW_STREAMICE */ #ifdef ALLOW_ICEFRONT IF (useICEFRONT) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('ICEFRONT_INIT_FIXED',myThid) # endif CALL ICEFRONT_INIT_FIXED( myThid ) ENDIF #endif /* ALLOW_ICEFRONT */ #ifdef ALLOW_THSICE IF (useThSIce) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('THSICE_INIT_FIXED',myThid) # endif CALL THSICE_INIT_FIXED(myThid) ENDIF #endif #ifdef ALLOW_LAND C-- Initialise Land package IF ( useLand ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('LAND_INIT_FIXED',myThid) # endif CALL LAND_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_ATM2D IF ( useAtm2d ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('ATM2D_INIT_FIXED',myThid) # endif CALL ATM2D_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_AIM C-- Initialise & Read AIM physical parameters IF (useAIM) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('AIM_INITIALISE',myThid) # endif CALL AIM_INITIALISE( myThid ) ENDIF #endif #ifdef ALLOW_ATM_PHYS C-- Initialise Atm_Phys pkg IF ( useAtm_Phys ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('ATM_PHYS_INIT_FIXED',myThid) # endif CALL ATM_PHYS_INIT_FIXED( myThid ) ENDIF #endif /* ALLOW_ATM_PHYS */ #ifdef ALLOW_FIZHI C-- Initialise & Read FIZHI physical parameters IF (useFIZHI) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('FIZHI_INIT_FIXED',myThid) # endif CALL FIZHI_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_GRIDALT C-- Initialise GRIDALT parameters - the alternative grid IF (useGRIDALT) then # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('GRIDALT_INITIALISE',myThid) # endif CALL GRIDALT_INITIALISE( myThid ) ENDIF #endif #ifdef ALLOW_TIMEAVE C IF (useTIMEAVE) THEN IF ( taveFreq.GT.0. ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('TIMEAVE_INIT_FIXED',myThid) # endif CALL TIMEAVE_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_REGRID IF ( useREGRID ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('REGRID_INIT_FIXED',myThid) # endif CALL REGRID_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_LAYERS IF ( useLayers ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('LAYERS_INIT_FIXED',myThid) # endif CALL LAYERS_INIT_FIXED( myThid ) ENDIF #endif /* ALLOW_LAYERS */ #ifdef COMPONENT_MODULE IF ( useCoupler ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('CPL_INIT_FIXED',myThid) # endif CALL CPL_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_OASIS C-- needs to be called after the OASIS_INIT IF (useOASIS) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('OASIS_INIT_FIXED',myThid) # endif CALL OASIS_INIT_FIXED(myThid) ENDIF #endif #ifdef ALLOW_EMBED_FILES IF ( useEMBED_FILES ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('EMBED_FILES_INIT',myThid) # endif CALL EMBED_FILES_INIT( myThid ) ENDIF #endif #ifdef ALLOW_MYPACKAGE IF (useMYPACKAGE) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('MYPACKAGE_INIT_FIXED',myThid) # endif CALL MYPACKAGE_INIT_FIXED(myThid) ENDIF #endif #ifdef ALLOW_CTRL IF (useCTRL) THEN C-- Initialise the control variables. Moved to the end of this S/R C to allow other pkgs to set mask and weight fields. # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('CTRL_INIT',myThid) # endif CALL CTRL_INIT( myThid ) ENDIF # ifdef ALLOW_ADMTLM IF (useCTRL) THEN C-- Initialise ADMTLM # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('CTRL_ADMTLM',myThid) # endif CALL CTRL_ADMTLM( myThid ) ENDIF # endif /* ALLOW_ADMTLM */ #endif /* ALLOW_CTRL */ #ifdef ALLOW_DIAGNOSTICS C- needs to call DIAGNOSTICS_INIT_FIXED after all package-diag-init calls IF ( useDiagnostics ) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('DIAGNOSTICS_INIT_FIXED',myThid) # endif CALL DIAGNOSTICS_INIT_FIXED( myThid ) ENDIF #endif #ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_LEAVE('PACKAGES_INIT_FIXED',myThid) #endif RETURN END