C $Header: /u/gcmpack/MITgcm/pkg/mnc/mnc_init.F,v 1.26 2011/05/23 01:08:22 jmc Exp $ C $Name: $ #include "MNC_OPTIONS.h" C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP 0 C !ROUTINE: MNC_INIT C !INTERFACE: SUBROUTINE MNC_INIT( myThid ) C !DESCRIPTION: C Initialize (zero) the look-up tables. This routine should C \textbf{always} be run before any other MNC subroutines to ensure C that the lookup tables start in a well-defined state. C !USES: #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "MNC_COMMON.h" #include "MNC_PARAMS.h" C !INPUT PARAMETERS: integer myThid CEOP C !LOCAL VARIABLES: integer i,j, g character blank*(MNC_MAX_CHAR) character bpath*(MNC_MAX_PATH) C Write blanks or zeros to all the internal names and ID tables DO i = 1,MNC_MAX_CHAR blank(i:i) = ' ' ENDDO DO i = 1,MNC_MAX_PATH bpath(i:i) = ' ' ENDDO mnc_blank_name(1:MNC_MAX_CHAR) = blank(1:MNC_MAX_CHAR) DO i = 1,MNC_MAX_FID mnc_f_names(i)(1:MNC_MAX_PATH) = bpath(1:MNC_MAX_PATH) DO j = 1,MNC_MAX_INFO mnc_f_info(i,j) = 0 mnc_fv_ids(i,j) = 0 mnc_fd_ind(i,j) = 0 mnc_f_alld(i,j) = 0 ENDDO ENDDO DO i = 1,MNC_MAX_ID mnc_d_size(i) = 0 mnc_d_ids(i) = 0 mnc_g_names(i)(1:MNC_MAX_CHAR) = blank(1:MNC_MAX_CHAR) mnc_v_names(i)(1:MNC_MAX_CHAR) = blank(1:MNC_MAX_CHAR) mnc_d_names(i)(1:MNC_MAX_CHAR) = blank(1:MNC_MAX_CHAR) ENDDO C Blank the CW tables DO g = 1,MNC_MAX_ID mnc_cw_gname(g)(1:MNC_MAX_CHAR) = blank(1:MNC_MAX_CHAR) mnc_cw_vname(g)(1:MNC_MAX_CHAR) = blank(1:MNC_MAX_CHAR) mnc_cw_vgind(g) = 0 mnc_cw_vfmv(g) = 0 mnc_cw_ndim(g) = 0 mnc_cw_fgnm(g)(1:MNC_MAX_CHAR) = blank(1:MNC_MAX_CHAR) mnc_cw_fgud(g) = 0 mnc_cw_fgis(g) = 0 mnc_cw_fgci(g) = 1 C mnc_cw_cvnm(g)(1:MNC_MAX_CHAR) = blank(1:MNC_MAX_CHAR) DO i = 1,MNC_CW_MAX_I mnc_cw_dn(i,g)(1:MNC_MAX_CHAR) = blank(1:MNC_MAX_CHAR) mnc_cw_vtnm(i,g)(1:MNC_MAX_CHAR) = blank(1:MNC_MAX_CHAR) mnc_cw_vinm(i,g)(1:MNC_MAX_CHAR) = blank(1:MNC_MAX_CHAR) mnc_cw_vdnm(i,g)(1:MNC_MAX_CHAR) = blank(1:MNC_MAX_CHAR) mnc_cw_vtat(i,g)(1:MNC_MAX_CHAR) = blank(1:MNC_MAX_CHAR) mnc_cw_dims(i,g) = 0 mnc_cw_is(i,g) = 0 mnc_cw_ie(i,g) = 0 mnc_cw_viat(i,g) = 0 mnc_cw_vdat(i,g) = 0.0D0 ENDDO DO i = 1,3 mnc_cw_vnat(i,g) = 0 ENDDO DO i = 1,2 mnc_cw_vbij(i,g) = 0 mnc_cw_vmvi(i,g) = 0 mnc_cw_vmvr(i,g) = 0.0 mnc_cw_vmvd(i,g) = 0.0D0 C mnc_cw_cvse(i,g) = 0 ENDDO ENDDO DO i = 1,MNC_MAX_INFO mnc_cw_cit(1,i) = 0 mnc_cw_cit(2,i) = 0 mnc_cw_cit(3,i) = -1 ENDDO DO i = 1,2 mnc_def_imv(i) = UNSET_I mnc_def_rmv(i) = UNSET_FLOAT4 mnc_def_dmv(i) = UNSET_FLOAT8 ENDDO C The default for all file types is to add the iter to the name and C grow them in "lock step" together mnc_cw_cit(1,1) = 1 mnc_cw_cit(2,1) = nIter0 C Here, we do not add the iter to the file name mnc_cw_cit(1,2) = -1 mnc_cw_cit(2,2) = -1 C For checkpoint files, we want to use the current iter but we do C not (by default, anyway) want to update the current iter for C everything else mnc_cw_cit(1,3) = 3 mnc_cw_cit(2,3) = nIter0 C DO i = 1,MNC_CW_CVDAT C mnc_cw_cvdt(i) = 0.0D0 C ENDDO RETURN END C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|