C $Header: /u/gcmpack/MITgcm/pkg/seaice/seaice_cost_init_fixed.F,v 1.7 2015/03/23 21:04:59 gforget Exp $ C $Name: $ #include "SEAICE_OPTIONS.h" #include "AD_CONFIG.h" subroutine SEAICE_COST_INIT_FIXED( mythid ) C ================================================================== C SUBROUTINE seaice_cost_init_fixed C ================================================================== C C o Set contributions to the cost function and the cost function C itself to zero. The cost function and the individual contribu- C tions are defined in the header file "SEAICE_COST.h". C C ================================================================== C SUBROUTINE seaice_cost_init_fixed C ================================================================== implicit none C == global variables == #include "EEPARAMS.h" #include "SIZE.h" #include "GRID.h" #include "PARAMS.h" #ifdef ALLOW_COST # include "SEAICE_COST.h" #endif #ifdef ALLOW_CAL # include "cal.h" #endif C == routine arguments == integer mythid #ifdef ALLOW_COST #ifdef ALLOW_COST_ICE C == local variables == integer tempDate1(4) integer tempDate2(4) logical exst C == external functions == c#ifdef ALLOW_CAL c integer cal_IntMonths c external cal_IntMonths c integer cal_IntDays c external cal_IntDays c#endif C == end of interface == #ifdef ALLOW_CAL _BEGIN_MASTER( myThid ) C-- Sea-ice cost function start and stop times in model seconds. call CAL_FULLDATE ( costIceStart1 , costIceStart2, & tempDate1 , mythid ) call CAL_TIMEPASSED( modelStartDate, tempDate1 , & tempDate2 , mythid ) call CAL_TOSECONDS ( tempDate2 , costIceStart , mythid ) costIceStart = costIceStart + startTime if ( costIceEnd1.EQ.0 ) then C- use "modelEndDate" as default value for costIceEnd costIceEnd1 = modelEndDate(1) costIceEnd2 = modelEndDate(2) endif call CAL_FULLDATE ( costIceEnd1 , costIceEnd2 , & tempDate1 , mythid ) call CAL_TIMEPASSED( modelStartDate, tempDate1 , & tempDate2 , mythid ) call CAL_TOSECONDS ( tempDate2 , costIceEnd , mythid ) costIceEnd = costIceEnd + startTime C-- if ( smrareadatfile .ne. ' ' ) & call CAL_FULLDATE( smrareastartdate1, smrareastartdate2, & smrareastartdate, mythid ) _END_MASTER( mythid ) #endif /* ALLOW_CAL */ C-- Get the weights that are to be used for the individual cost C-- function contributions. call SEAICE_COST_WEIGHTS( mythid ) C-- Initialise adjoint of monthly mean files calculated C-- in cost_averagesfields (and their ad...). cph( cph The following init. shoud not be applied if in the middle cph of a divided adjoint run cph) #ifndef ALLOW_TANGENTLINEAR_RUN cph!!! and I think it needs to be seen by TAF cph!!! for repeated TLM runs cph!!! inquire( file='costfinal', exist=exst ) if ( .NOT. exst) then cph call seaice_cost_init_barfiles( mythid ) endif #endif _BARRIER #endif /* ALLOW_COST_ICE */ #endif /* ALLOW_COST */ RETURN END