C $Header: /home/ubuntu/mnt/e9_copy/MITgcm_contrib/dgoldberg/streamice/streamice_readparms.F,v 1.5 2012/07/30 19:04:55 dgoldberg Exp $ C $Name: $ C this needs changes #include "STREAMICE_OPTIONS.h" C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP 0 SUBROUTINE STREAMICE_READPARMS( myThid ) C !DESCRIPTION: C Initialize STREAMICE variables and constants. C !USES: IMPLICIT NONE #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "STREAMICE.h" #include "STREAMICE_BDRY.h" C !INPUT PARAMETERS: INTEGER myThid CEOP #ifdef ALLOW_STREAMICE C !LOCAL VARIABLES: C msgBuf :: Informational/error message buffer C iUnit :: Work variable for IO unit number CHARACTER*(MAX_LEN_MBUF) msgBuf INTEGER iUnit NAMELIST /STREAMICE_PARM01/ & streamice_density, streamice_density_ocean_avg, & A_glen_isothermal, n_glen, eps_glen_min, & C_basal_fric_const, n_basal_friction, & streamice_vel_update,streamice_cg_tol,streamice_nonlin_tol, & streamice_nonlin_tol_fp, & streamice_max_cg_iter, streamice_max_nl_iter, & STREAMICE_GL_regularize, & STREAMICEthickInit, & STREAMICEthickFile, & STREAMICEcalveMaskFile, & STREAMICEison, & STREAMICE_dump_mdsio, STREAMICE_tave_mdsio, & STREAMICE_dump_mnc, STREAMICE_tave_mnc, & STREAMICE_GL_regularize, STREAMICE_move_front, & STREAMICE_calve_to_mask, ! & STREAMICE_construct_matrix, & STREAMICE_lower_cg_tol, & streamice_CFL_factor, & streamice_adjDump NAMELIST /STREAMICE_PARM02/ & shelf_max_draft, & shelf_min_draft, & shelf_edge_pos, & shelf_slope_scale, & shelf_flat_width, & flow_dir NAMELIST /STREAMICE_PARM03/ & min_x_noflow_NORTH, max_x_noflow_NORTH, & min_x_noflow_SOUTH, max_x_noflow_SOUTH, & min_y_noflow_WEST, max_y_noflow_WEST, & min_y_noflow_EAST, max_y_noflow_EAST, & min_x_noStress_NORTH, max_x_noStress_NORTH, & min_x_noStress_SOUTH, max_x_noStress_SOUTH, & min_y_noStress_WEST, max_y_noStress_WEST, & min_y_noStress_EAST, max_y_noStress_EAST, & min_x_FluxBdry_NORTH, max_x_FluxBdry_NORTH, & min_x_FluxBdry_SOUTH, max_x_FluxBdry_SOUTH, & min_y_FluxBdry_WEST, max_y_FluxBdry_WEST, & min_y_FluxBdry_EAST, max_y_FluxBdry_EAST, & min_x_Dirich_NORTH, max_x_Dirich_NORTH, & min_x_Dirich_SOUTH, max_x_Dirich_SOUTH, & min_y_Dirich_WEST, max_y_Dirich_WEST, & min_y_Dirich_EAST, max_y_Dirich_EAST, & min_x_CFBC_NORTH, max_x_CFBC_NORTH, & min_x_CFBC_SOUTH, max_x_CFBC_SOUTH, & min_y_CFBC_WEST, max_y_CFBC_WEST, & min_y_CFBC_EAST, max_y_CFBC_EAST, & flux_bdry_val_SOUTH, flux_bdry_val_NORTH, & flux_bdry_val_WEST, flux_bdry_val_EAST _BEGIN_MASTER(myThid) C-- Default values for STREAMICE streamice_density = 917. streamice_density_ocean_avg = 1024. A_glen_isothermal = 9.461e-18 ! Pa (-1/3) a n_glen = 3. eps_glen_min = 1.0e-12 C_basal_fric_const = 31.71 ! Pa (m/a)-1n n_basal_friction = 1. streamice_vel_update = 169200. ! seconds streamice_cg_tol = 1e-6 streamice_nonlin_tol = 1e-6 streamice_nonlin_tol_fp = 1.e-14 streamice_max_cg_iter = 2000 streamice_max_nl_iter = 100 streamice_n_sub_regularize = 4 streamice_CFL_factor = .5 streamice_adjDump = 0. STREAMICEthickInit = 'FILE' STREAMICEthickFile = ' ' STREAMICEcalveMaskFile = ' ' STREAMICEison = .TRUE. STREAMICE_tave_mdsio = .TRUE. STREAMICE_dump_mdsio = .TRUE. STREAMICE_dump_mnc = .FALSE. STREAMICE_tave_mnc = .FALSE. STREAMICE_GL_regularize = .FALSE. STREAMICE_move_front = .FALSE. STREAMICE_calve_to_mask = .FALSE. ! STREAMICE_construct_matrix = .TRUE. STREAMICE_lower_cg_tol = .FALSE. min_x_noflow_NORTH = 0. max_x_noflow_NORTH = 0. min_x_noflow_SOUTH = 0. max_x_noflow_SOUTH = 0. min_y_noflow_WEST = 0. max_y_noflow_WEST = 0. min_y_noflow_EAST = 0. max_y_noflow_EAST = 0. min_x_noStress_NORTH = 0. max_x_noStress_NORTH = 0. min_x_noStress_SOUTH = 0. max_x_noStress_SOUTH = 0. min_y_noStress_WEST = 0. max_y_noStress_WEST = 0. min_y_noStress_EAST = 0. max_y_noStress_EAST = 0. min_x_FluxBdry_NORTH = 0. max_x_FluxBdry_NORTH = 0. min_x_FluxBdry_SOUTH = 0. max_x_FluxBdry_SOUTH = 0. min_y_FluxBdry_WEST = 0. max_y_FluxBdry_WEST = 0. min_y_FluxBdry_EAST = 0. max_y_FluxBdry_EAST = 0. min_x_Dirich_NORTH = 0. max_x_Dirich_NORTH = 0. min_x_Dirich_SOUTH = 0. max_x_Dirich_SOUTH = 0. min_y_Dirich_WEST = 0. max_y_Dirich_WEST = 0. min_y_Dirich_EAST = 0. max_y_Dirich_EAST = 0. min_y_CFBC_WEST = 0. max_y_CFBC_WEST = 0. min_y_CFBC_EAST = 0. max_y_CFBC_EAST = 0. flux_bdry_val_SOUTH = 0. flux_bdry_val_NORTH = 0. flux_bdry_val_WEST = 0. flux_bdry_val_EAST = 0. WRITE(msgBuf,'(A)') 'STREAMICE_READPARMS: opening data.streamice' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , 1) CALL OPEN_COPY_DATA_FILE( I 'data.streamice', 'STREAMICE_READPARMS', O iUnit, I myThid ) C Read parameters from open data file READ(UNIT=iUnit,NML=STREAMICE_PARM01) WRITE(msgBuf,'(A)') & 'STREAMICE_READPARMS: read first param block' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , 1) IF (TRIM(STREAMICEthickInit) .eq. "PARAM") THEN READ(UNIT=iUnit,NML=STREAMICE_PARM02) WRITE(msgBuf,'(A)') & 'STREAMICE_READPARMS: read second param block' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , 1) ENDIF READ(UNIT=iUnit,NML=STREAMICE_PARM03) WRITE(msgBuf,'(A)') & 'STREAMICE_READPARMS: read third param block' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , 1) C Close the open data file CLOSE(iUnit) streamice_nstep_velocity = NINT (streamice_vel_update / deltaT) C- Set Output type flags : #ifdef ALLOW_MNC IF (useMNC) THEN IF ( .NOT.outputTypesInclusive & .AND. STREAMICE_tave_mnc ) STREAMICE_tave_mdsio = .FALSE. IF ( .NOT.outputTypesInclusive & .AND. STREAMICE_dump_mnc ) STREAMICE_dump_mdsio = .FALSE. ENDIF #endif _END_MASTER(myThid) C-- Everyone else must wait for the parameters to be loaded _BARRIER #endif /* ALLOW_STREAMICE */ RETURN END