Changeset 2201
- Timestamp:
- 2010-10-11T15:13:35+02:00 (14 years ago)
- Location:
- branches/DEV_r1924_nocs_latphys
- Files:
-
- 68 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/DEV_r1924_nocs_latphys/CONFIG/GYRE/scripts/BB_make
r1791 r2201 7 7 # Check your compilers option in consequence when using real F95 compilers 8 8 9 F_O += -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) 10 L_X = $(L_O) 9 11 #-Q- platine # Compiler options NEMO (CCRT Itanium Bull) 10 12 #-Q- platine F_O = -O3 -i4 -r8 -module $(MODDIR)/oce -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) … … 101 103 102 104 #check key compatibility 103 keycompat=$(if $( and $(findstring $1,$(P_P)),$(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible))105 keycompat=$(if $(word 2, $(findstring $1,$(P_P)) $(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible)) 104 106 105 107 KEY_LIST = \ … … 430 432 431 433 # Agrif library and conv 432 libagrif : $(call keycompat,key_iomput,key_agrif)434 libagrif : 433 435 ifeq ($(AGRIF),use) 434 436 @( if [ ! -d OPAFILES ]; then mkdir OPAFILES; fi ) … … 1195 1197 diaar5.F90 1196 1198 $(MODEL_LIB)(diadimg.o) : \ 1197 $(MODEL_LIB)(lib_print.o) \ 1198 $(MODEL_LIB)(par_kind.o) \ 1199 $(MODEL_LIB)(par_oce.o) \ 1200 lib_print.f90 \ 1201 par_kind.F90 \ 1202 par_oce.F90 \ 1203 $(MODEL_LIB)(dom_oce.o) \ 1204 $(MODEL_LIB)(in_out_manager.o) \ 1205 $(MODEL_LIB)(oce.o) \ 1199 $(MODEL_LIB)(dom_oce.o) \ 1200 $(MODEL_LIB)(in_out_manager.o) \ 1201 $(MODEL_LIB)(iom.o) \ 1202 $(MODEL_LIB)(lib_print.o) \ 1203 $(MODEL_LIB)(par_kind.o) \ 1204 $(MODEL_LIB)(par_oce.o) \ 1205 $(MODEL_LIB)(phycst.o) \ 1206 $(MODEL_LIB)(prtctl.o) \ 1207 $(MODEL_LIB)(restart.o) \ 1208 dom_oce.F90 \ 1209 in_out_manager.F90 \ 1210 iom.F90 \ 1211 lib_print.f90 \ 1212 par_kind.F90 \ 1213 par_oce.F90 \ 1214 phycst.F90 \ 1215 prtctl.F90 \ 1216 restart.F90 \ 1217 $(MODEL_LIB)(daymod.o) \ 1218 $(MODEL_LIB)(dom_oce.o) \ 1219 $(MODEL_LIB)(in_out_manager.o) \ 1220 $(MODEL_LIB)(oce.o) \ 1221 daymod.F90 \ 1206 1222 dom_oce.F90 \ 1207 1223 in_out_manager.F90 \ … … 1358 1374 phycst.F90 \ 1359 1375 $(IOIPSL_LIB) \ 1360 KEY_CPP \1361 1376 dianam.F90 1362 1377 $(MODEL_LIB)(diaptr.o) : \ … … 1419 1434 diaptr.F90 1420 1435 $(MODEL_LIB)(diawri.o) : \ 1436 $(MODEL_LIB)(daymod.o) \ 1421 1437 $(MODEL_LIB)(dianam.o) \ 1422 1438 $(MODEL_LIB)(dom_ice_2.o) \ … … 1446 1462 $(MODEL_LIB)(sbcrnf.o) \ 1447 1463 $(MODEL_LIB)(zdf_oce.o) \ 1464 daymod.F90 \ 1448 1465 dianam.F90 \ 1449 1466 dom_ice_2.F90 \ … … 4594 4611 in_out_manager.F90 \ 4595 4612 lbcnfd.F90 \ 4596 $(AGRIF_LIB) \4597 4613 KEY_CPP \ 4598 4614 lib_mpp.F90 … … 5309 5325 $(MODEL_LIB)(limistate_2.o) \ 5310 5326 $(MODEL_LIB)(phycst.o) \ 5327 $(MODEL_LIB)(sbc_oce.o) \ 5311 5328 dom_ice_2.F90 \ 5312 5329 dom_oce.F90 \ … … 5319 5336 limistate_2.F90 \ 5320 5337 phycst.F90 \ 5338 sbc_oce.F90 \ 5321 5339 vectopt_loop_substitute.h90 \ 5322 5340 KEY_CPP \ … … 7996 8014 $(MODEL_LIB)(lib_print.o) \ 7997 8015 $(MODEL_LIB)(limwri_2.o) \ 8016 $(MODEL_LIB)(obc_oce.o) \ 7998 8017 $(MODEL_LIB)(obctra.o) \ 7999 8018 $(MODEL_LIB)(oce.o) \ … … 8067 8086 lib_print.f90 \ 8068 8087 limwri_2.F90 \ 8088 obc_oce.F90 \ 8069 8089 obctra.F90 \ 8070 8090 oce.F90 \ … … 9620 9640 $(MODEL_LIB)(lib_print.o) \ 9621 9641 $(MODEL_LIB)(obc_oce.o) \ 9642 $(MODEL_LIB)(obc_par.o) \ 9622 9643 $(MODEL_LIB)(oce.o) \ 9623 9644 $(MODEL_LIB)(par_kind.o) \ … … 9644 9665 lib_print.f90 \ 9645 9666 obc_oce.F90 \ 9667 obc_par.F90 \ 9646 9668 oce.F90 \ 9647 9669 par_kind.F90 \ … … 9668 9690 $(MODEL_LIB)(in_out_manager.o) \ 9669 9691 $(MODEL_LIB)(lbclnk.o) \ 9692 $(MODEL_LIB)(obc_oce.o) \ 9670 9693 $(MODEL_LIB)(obctra.o) \ 9671 9694 $(MODEL_LIB)(oce.o) \ … … 9684 9707 in_out_manager.F90 \ 9685 9708 lbclnk.F90 \ 9709 obc_oce.F90 \ 9686 9710 obctra.F90 \ 9687 9711 oce.F90 \ … … 10172 10196 $(MODEL_LIB)(trdmld.o) : \ 10173 10197 $(MODEL_LIB)(c1d.o) \ 10198 $(MODEL_LIB)(daymod.o) \ 10174 10199 $(MODEL_LIB)(dom_oce.o) \ 10175 10200 $(MODEL_LIB)(eosbn2.o) \ … … 10197 10222 $(MODEL_LIB)(zpshde.o) \ 10198 10223 c1d.F90 \ 10224 daymod.F90 \ 10199 10225 dom_oce.F90 \ 10200 10226 eosbn2.F90 \ -
branches/DEV_r1924_nocs_latphys/CONFIG/GYRE/scripts/BB_make.ldef
r1791 r2201 34 34 #- 35 35 #- Prefix for preprocessing --- 36 prefix = -D 36 37 #-Q- sx8mercure prefix = -D 37 38 #-Q- sx9mercure prefix = -D -
branches/DEV_r1924_nocs_latphys/CONFIG/GYRE_LOBSTER/scripts/BB_make
r1791 r2201 7 7 # Check your compilers option in consequence when using real F95 compilers 8 8 9 F_O += -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) 10 L_X = $(L_O) 9 11 #-Q- platine # Compiler options NEMO (CCRT Itanium Bull) 10 12 #-Q- platine F_O = -O3 -i4 -r8 -module $(MODDIR)/oce -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) … … 101 103 102 104 #check key compatibility 103 keycompat=$(if $( and $(findstring $1,$(P_P)),$(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible))105 keycompat=$(if $(word 2, $(findstring $1,$(P_P)) $(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible)) 104 106 105 107 KEY_LIST = \ … … 477 479 $(MODEL_LIB)(trcrad.o)\ 478 480 $(MODEL_LIB)(trcrst.o)\ 481 $(MODEL_LIB)(trcrst_c14b.o)\ 482 $(MODEL_LIB)(trcrst_cfc.o)\ 483 $(MODEL_LIB)(trcrst_lobster.o)\ 484 $(MODEL_LIB)(trcrst_my_trc.o)\ 485 $(MODEL_LIB)(trcrst_pisces.o)\ 479 486 $(MODEL_LIB)(trcsbc.o)\ 480 487 $(MODEL_LIB)(trcsed.o)\ … … 559 566 560 567 # Agrif library and conv 561 libagrif : $(call keycompat,key_iomput,key_agrif)568 libagrif : 562 569 ifeq ($(AGRIF),use) 563 570 @( if [ ! -d OPAFILES ]; then mkdir OPAFILES; fi ) … … 1330 1337 diaar5.F90 1331 1338 $(MODEL_LIB)(diadimg.o) : \ 1332 $(MODEL_LIB)(lib_print.o) \ 1333 $(MODEL_LIB)(par_kind.o) \ 1334 $(MODEL_LIB)(par_oce.o) \ 1335 lib_print.f90 \ 1336 par_kind.F90 \ 1337 par_oce.F90 \ 1338 $(MODEL_LIB)(dom_oce.o) \ 1339 $(MODEL_LIB)(in_out_manager.o) \ 1340 $(MODEL_LIB)(oce.o) \ 1339 $(MODEL_LIB)(dom_oce.o) \ 1340 $(MODEL_LIB)(in_out_manager.o) \ 1341 $(MODEL_LIB)(iom.o) \ 1342 $(MODEL_LIB)(lib_print.o) \ 1343 $(MODEL_LIB)(par_kind.o) \ 1344 $(MODEL_LIB)(par_oce.o) \ 1345 $(MODEL_LIB)(phycst.o) \ 1346 $(MODEL_LIB)(prtctl.o) \ 1347 $(MODEL_LIB)(restart.o) \ 1348 dom_oce.F90 \ 1349 in_out_manager.F90 \ 1350 iom.F90 \ 1351 lib_print.f90 \ 1352 par_kind.F90 \ 1353 par_oce.F90 \ 1354 phycst.F90 \ 1355 prtctl.F90 \ 1356 restart.F90 \ 1357 $(MODEL_LIB)(daymod.o) \ 1358 $(MODEL_LIB)(dom_oce.o) \ 1359 $(MODEL_LIB)(in_out_manager.o) \ 1360 $(MODEL_LIB)(oce.o) \ 1361 daymod.F90 \ 1341 1362 dom_oce.F90 \ 1342 1363 in_out_manager.F90 \ … … 1493 1514 phycst.F90 \ 1494 1515 $(IOIPSL_LIB) \ 1495 KEY_CPP \1496 1516 dianam.F90 1497 1517 $(MODEL_LIB)(diaptr.o) : \ … … 1554 1574 diaptr.F90 1555 1575 $(MODEL_LIB)(diawri.o) : \ 1576 $(MODEL_LIB)(daymod.o) \ 1556 1577 $(MODEL_LIB)(dianam.o) \ 1557 1578 $(MODEL_LIB)(dom_ice_2.o) \ … … 1581 1602 $(MODEL_LIB)(sbcrnf.o) \ 1582 1603 $(MODEL_LIB)(zdf_oce.o) \ 1604 daymod.F90 \ 1583 1605 dianam.F90 \ 1584 1606 dom_ice_2.F90 \ … … 4729 4751 in_out_manager.F90 \ 4730 4752 lbcnfd.F90 \ 4731 $(AGRIF_LIB) \4732 4753 KEY_CPP \ 4733 4754 lib_mpp.F90 … … 5444 5465 $(MODEL_LIB)(limistate_2.o) \ 5445 5466 $(MODEL_LIB)(phycst.o) \ 5467 $(MODEL_LIB)(sbc_oce.o) \ 5446 5468 dom_ice_2.F90 \ 5447 5469 dom_oce.F90 \ … … 5454 5476 limistate_2.F90 \ 5455 5477 phycst.F90 \ 5478 sbc_oce.F90 \ 5456 5479 vectopt_loop_substitute.h90 \ 5457 5480 KEY_CPP \ … … 6528 6551 trc.F90 \ 6529 6552 domzgr_substitute.h90 \ 6553 ldfeiv_substitute.h90 \ 6554 ldftra_substitute.h90 \ 6555 top_substitute.h90 \ 6556 vectopt_loop_substitute.h90 \ 6530 6557 KEY_CPP \ 6531 6558 p4zbio.F90 … … 6570 6597 trc.F90 \ 6571 6598 domzgr_substitute.h90 \ 6599 ldfeiv_substitute.h90 \ 6600 ldftra_substitute.h90 \ 6601 top_substitute.h90 \ 6602 vectopt_loop_substitute.h90 \ 6572 6603 KEY_CPP \ 6573 6604 p4zche.F90 … … 6644 6675 trc.F90 \ 6645 6676 domzgr_substitute.h90 \ 6677 ldfeiv_substitute.h90 \ 6678 ldftra_substitute.h90 \ 6679 top_substitute.h90 \ 6680 vectopt_loop_substitute.h90 \ 6646 6681 KEY_CPP \ 6647 6682 p4zflx.F90 … … 6727 6762 trc.F90 \ 6728 6763 domzgr_substitute.h90 \ 6764 ldfeiv_substitute.h90 \ 6765 ldftra_substitute.h90 \ 6766 top_substitute.h90 \ 6767 vectopt_loop_substitute.h90 \ 6729 6768 KEY_CPP \ 6730 6769 p4zlim.F90 … … 6862 6901 trc.F90 \ 6863 6902 domzgr_substitute.h90 \ 6903 ldfeiv_substitute.h90 \ 6904 ldftra_substitute.h90 \ 6905 top_substitute.h90 \ 6906 vectopt_loop_substitute.h90 \ 6864 6907 KEY_CPP \ 6865 6908 p4zmeso.F90 … … 6936 6979 trc.F90 \ 6937 6980 domzgr_substitute.h90 \ 6981 ldfeiv_substitute.h90 \ 6982 ldftra_substitute.h90 \ 6983 top_substitute.h90 \ 6984 vectopt_loop_substitute.h90 \ 6938 6985 KEY_CPP \ 6939 6986 p4zmicro.F90 … … 6992 7039 trc.F90 \ 6993 7040 domzgr_substitute.h90 \ 7041 ldfeiv_substitute.h90 \ 7042 ldftra_substitute.h90 \ 7043 top_substitute.h90 \ 7044 vectopt_loop_substitute.h90 \ 6994 7045 KEY_CPP \ 6995 7046 p4zmort.F90 … … 7052 7103 trc_oce.F90 \ 7053 7104 domzgr_substitute.h90 \ 7105 ldfeiv_substitute.h90 \ 7106 ldftra_substitute.h90 \ 7107 top_substitute.h90 \ 7108 vectopt_loop_substitute.h90 \ 7054 7109 KEY_CPP \ 7055 7110 p4zopt.F90 … … 7132 7187 trc.F90 \ 7133 7188 domzgr_substitute.h90 \ 7189 ldfeiv_substitute.h90 \ 7190 ldftra_substitute.h90 \ 7191 top_substitute.h90 \ 7192 vectopt_loop_substitute.h90 \ 7134 7193 KEY_CPP \ 7135 7194 p4zprod.F90 … … 7206 7265 trc.F90 \ 7207 7266 domzgr_substitute.h90 \ 7267 ldfeiv_substitute.h90 \ 7268 ldftra_substitute.h90 \ 7269 top_substitute.h90 \ 7270 vectopt_loop_substitute.h90 \ 7208 7271 KEY_CPP \ 7209 7272 p4zrem.F90 … … 7382 7445 trc.F90 \ 7383 7446 domzgr_substitute.h90 \ 7447 ldfeiv_substitute.h90 \ 7448 ldftra_substitute.h90 \ 7449 top_substitute.h90 \ 7450 vectopt_loop_substitute.h90 \ 7384 7451 KEY_CPP \ 7385 7452 p4zsink.F90 … … 9922 9989 $(MODEL_LIB)(lib_print.o) \ 9923 9990 $(MODEL_LIB)(limwri_2.o) \ 9991 $(MODEL_LIB)(obc_oce.o) \ 9924 9992 $(MODEL_LIB)(obctra.o) \ 9925 9993 $(MODEL_LIB)(oce.o) \ … … 10003 10071 lib_print.f90 \ 10004 10072 limwri_2.F90 \ 10073 obc_oce.F90 \ 10005 10074 obctra.F90 \ 10006 10075 oce.F90 \ … … 11568 11637 $(MODEL_LIB)(lib_print.o) \ 11569 11638 $(MODEL_LIB)(obc_oce.o) \ 11639 $(MODEL_LIB)(obc_par.o) \ 11570 11640 $(MODEL_LIB)(oce.o) \ 11571 11641 $(MODEL_LIB)(par_kind.o) \ … … 11592 11662 lib_print.f90 \ 11593 11663 obc_oce.F90 \ 11664 obc_par.F90 \ 11594 11665 oce.F90 \ 11595 11666 par_kind.F90 \ … … 11616 11687 $(MODEL_LIB)(in_out_manager.o) \ 11617 11688 $(MODEL_LIB)(lbclnk.o) \ 11689 $(MODEL_LIB)(obc_oce.o) \ 11618 11690 $(MODEL_LIB)(obctra.o) \ 11619 11691 $(MODEL_LIB)(oce.o) \ … … 11632 11704 in_out_manager.F90 \ 11633 11705 lbclnk.F90 \ 11706 obc_oce.F90 \ 11634 11707 obctra.F90 \ 11635 11708 oce.F90 \ … … 13025 13098 $(MODEL_LIB)(lib_print.o) \ 13026 13099 $(MODEL_LIB)(oce.o) \ 13027 $(MODEL_LIB)(par_kind.o) \ 13028 $(MODEL_LIB)(par_oce.o) \ 13100 $(MODEL_LIB)(par_c14b.o) \ 13101 $(MODEL_LIB)(par_cfc.o) \ 13102 $(MODEL_LIB)(par_kind.o) \ 13103 $(MODEL_LIB)(par_lobster.o) \ 13104 $(MODEL_LIB)(par_my_trc.o) \ 13105 $(MODEL_LIB)(par_oce.o) \ 13106 $(MODEL_LIB)(par_pisces.o) \ 13029 13107 $(MODEL_LIB)(par_trc.o) \ 13030 13108 $(MODEL_LIB)(phycst.o) \ … … 13045 13123 lib_print.f90 \ 13046 13124 oce.F90 \ 13047 par_kind.F90 \ 13048 par_oce.F90 \ 13125 par_c14b.F90 \ 13126 par_cfc.F90 \ 13127 par_kind.F90 \ 13128 par_lobster.F90 \ 13129 par_my_trc.F90 \ 13130 par_oce.F90 \ 13131 par_pisces.F90 \ 13049 13132 par_trc.F90 \ 13050 13133 phycst.F90 \ … … 13062 13145 $(MODEL_LIB)(lib_mpp.o) \ 13063 13146 $(MODEL_LIB)(oce_trc.o) \ 13147 $(MODEL_LIB)(par_trc.o) \ 13064 13148 $(MODEL_LIB)(trc.o) \ 13065 13149 $(MODEL_LIB)(trdmld_trc_oce.o) \ … … 13070 13154 lib_mpp.F90 \ 13071 13155 oce_trc.F90 \ 13156 par_trc.F90 \ 13072 13157 trc.F90 \ 13073 13158 trdmld_trc_oce.F90 \ … … 13345 13430 trcexp.F90 13346 13431 $(MODEL_LIB)(trcini.o) : \ 13432 $(MODEL_LIB)(daymod.o) \ 13347 13433 $(MODEL_LIB)(dom_oce.o) \ 13348 13434 $(MODEL_LIB)(in_out_manager.o) \ … … 13380 13466 $(MODEL_LIB)(trclsm_my_trc.o) \ 13381 13467 $(MODEL_LIB)(trclsm_pisces.o) \ 13468 $(MODEL_LIB)(trcrst_c14b.o) \ 13469 $(MODEL_LIB)(trcrst_cfc.o) \ 13470 $(MODEL_LIB)(trcrst_lobster.o) \ 13471 $(MODEL_LIB)(trcrst_my_trc.o) \ 13472 $(MODEL_LIB)(trcrst_pisces.o) \ 13382 13473 $(MODEL_LIB)(trcsms_c14b.o) \ 13383 13474 $(MODEL_LIB)(trcsms_cfc.o) \ 13384 $(MODEL_LIB)(trcsms_my_trc.o) \13385 13475 $(MODEL_LIB)(trctrp_ctl.o) \ 13386 13476 $(MODEL_LIB)(trctrp_lec.o) \ … … 13390 13480 $(MODEL_LIB)(zdfddm.o) \ 13391 13481 $(MODEL_LIB)(zdfmxl.o) \ 13482 daymod.F90 \ 13392 13483 dom_oce.F90 \ 13393 13484 in_out_manager.F90 \ … … 13425 13516 trclsm_my_trc.F90 \ 13426 13517 trclsm_pisces.F90 \ 13518 trcrst_c14b.F90 \ 13519 trcrst_cfc.F90 \ 13520 trcrst_lobster.F90 \ 13521 trcrst_my_trc.F90 \ 13522 trcrst_pisces.F90 \ 13427 13523 trcsms_c14b.F90 \ 13428 13524 trcsms_cfc.F90 \ 13429 trcsms_my_trc.F90 \13430 13525 trctrp_ctl.F90 \ 13431 13526 trctrp_lec.F90 \ … … 14678 14773 trc.F90 \ 14679 14774 domzgr_substitute.h90 \ 14775 ldfeiv_substitute.h90 \ 14776 ldftra_substitute.h90 \ 14777 top_substitute.h90 \ 14778 vectopt_loop_substitute.h90 \ 14680 14779 KEY_CPP \ 14681 14780 trcopt.F90 … … 14776 14875 $(MODEL_LIB)(par_trc.o) \ 14777 14876 $(MODEL_LIB)(phycst.o) \ 14877 $(MODEL_LIB)(prtctl.o) \ 14878 $(MODEL_LIB)(restart.o) \ 14879 $(MODEL_LIB)(sbc_oce.o) \ 14880 $(MODEL_LIB)(sbcrnf.o) \ 14881 $(MODEL_LIB)(sms_lobster.o) \ 14882 $(MODEL_LIB)(sms_pisces.o) \ 14883 $(MODEL_LIB)(trabbl.o) \ 14884 $(MODEL_LIB)(traqsr.o) \ 14885 $(MODEL_LIB)(trc.o) \ 14886 $(MODEL_LIB)(trcdta.o) \ 14887 $(MODEL_LIB)(trcsms_c14b.o) \ 14888 $(MODEL_LIB)(trcsms_cfc.o) \ 14889 $(MODEL_LIB)(trcsms_lobster.o) \ 14890 $(MODEL_LIB)(trcsms_pisces.o) \ 14891 $(MODEL_LIB)(trp_trc.o) \ 14892 $(MODEL_LIB)(zdf_oce.o) \ 14893 $(MODEL_LIB)(zdfddm.o) \ 14894 $(MODEL_LIB)(zdfmxl.o) \ 14895 dianam.F90 \ 14896 dom_oce.F90 \ 14897 domngb.F90 \ 14898 in_out_manager.F90 \ 14899 iom.F90 \ 14900 iom_def.F90 \ 14901 iom_ioipsl.F90 \ 14902 iom_nf90.F90 \ 14903 iom_rstdimg.F90 \ 14904 lbclnk.F90 \ 14905 lbcnfd.F90 \ 14906 ldfslp.F90 \ 14907 ldftra_oce.F90 \ 14908 lib_mpp.F90 \ 14909 oce.F90 \ 14910 oce_trc.F90 \ 14911 par_oce.F90 \ 14912 par_trc.F90 \ 14913 phycst.F90 \ 14914 prtctl.F90 \ 14915 restart.F90 \ 14916 sbc_oce.F90 \ 14917 sbcrnf.F90 \ 14918 sms_lobster.F90 \ 14919 sms_pisces.F90 \ 14920 trabbl.F90 \ 14921 traqsr.F90 \ 14922 trc.F90 \ 14923 trcdta.F90 \ 14924 trcsms_c14b.F90 \ 14925 trcsms_cfc.F90 \ 14926 trcsms_lobster.F90 \ 14927 trcsms_pisces.F90 \ 14928 trp_trc.F90 \ 14929 zdf_oce.F90 \ 14930 zdfddm.F90 \ 14931 zdfmxl.F90 \ 14932 $(MODEL_LIB)(daymod.o) \ 14933 $(MODEL_LIB)(iom.o) \ 14934 $(MODEL_LIB)(lib_mpp.o) \ 14935 $(MODEL_LIB)(oce_trc.o) \ 14936 $(MODEL_LIB)(trc.o) \ 14937 $(MODEL_LIB)(trcrst_c14b.o) \ 14938 $(MODEL_LIB)(trcrst_cfc.o) \ 14939 $(MODEL_LIB)(trcrst_lobster.o) \ 14940 $(MODEL_LIB)(trcrst_my_trc.o) \ 14941 $(MODEL_LIB)(trcrst_pisces.o) \ 14942 $(MODEL_LIB)(trctrp_lec.o) \ 14943 daymod.F90 \ 14944 iom.F90 \ 14945 lib_mpp.F90 \ 14946 oce_trc.F90 \ 14947 trc.F90 \ 14948 trcrst_c14b.F90 \ 14949 trcrst_cfc.F90 \ 14950 trcrst_lobster.F90 \ 14951 trcrst_my_trc.F90 \ 14952 trcrst_pisces.F90 \ 14953 trctrp_lec.F90 \ 14954 domzgr_substitute.h90 \ 14955 ldfeiv_substitute.h90 \ 14956 ldftra_substitute.h90 \ 14957 top_substitute.h90 \ 14958 vectopt_loop_substitute.h90 \ 14959 KEY_CPP \ 14960 trcrst.F90 14961 $(MODEL_LIB)(trcrst_c14b.o) : \ 14962 $(MODEL_LIB)(dianam.o) \ 14963 $(MODEL_LIB)(dom_oce.o) \ 14964 $(MODEL_LIB)(domngb.o) \ 14965 $(MODEL_LIB)(in_out_manager.o) \ 14966 $(MODEL_LIB)(iom.o) \ 14967 $(MODEL_LIB)(iom_def.o) \ 14968 $(MODEL_LIB)(iom_ioipsl.o) \ 14969 $(MODEL_LIB)(iom_nf90.o) \ 14970 $(MODEL_LIB)(iom_rstdimg.o) \ 14971 $(MODEL_LIB)(lbclnk.o) \ 14972 $(MODEL_LIB)(ldfslp.o) \ 14973 $(MODEL_LIB)(ldftra_oce.o) \ 14974 $(MODEL_LIB)(lib_mpp.o) \ 14975 $(MODEL_LIB)(lib_print.o) \ 14976 $(MODEL_LIB)(oce.o) \ 14977 $(MODEL_LIB)(oce_trc.o) \ 14978 $(MODEL_LIB)(par_c14b.o) \ 14979 $(MODEL_LIB)(par_cfc.o) \ 14980 $(MODEL_LIB)(par_kind.o) \ 14981 $(MODEL_LIB)(par_lobster.o) \ 14982 $(MODEL_LIB)(par_my_trc.o) \ 14983 $(MODEL_LIB)(par_oce.o) \ 14984 $(MODEL_LIB)(par_pisces.o) \ 14985 $(MODEL_LIB)(par_trc.o) \ 14986 $(MODEL_LIB)(phycst.o) \ 14778 14987 $(MODEL_LIB)(sbc_oce.o) \ 14779 14988 $(MODEL_LIB)(sbcrnf.o) \ … … 14783 14992 $(MODEL_LIB)(trdmld_trc.o) \ 14784 14993 $(MODEL_LIB)(trdmld_trc_oce.o) \ 14785 $(MODEL_LIB)(trp_trc.o) \14786 14994 $(MODEL_LIB)(zdf_oce.o) \ 14787 14995 $(MODEL_LIB)(zdfddm.o) \ … … 14797 15005 iom_rstdimg.F90 \ 14798 15006 lbclnk.F90 \ 14799 lbcnfd.F90 \14800 15007 ldfslp.F90 \ 14801 15008 ldftra_oce.F90 \ 14802 15009 lib_mpp.F90 \ 15010 lib_print.f90 \ 14803 15011 oce.F90 \ 14804 15012 oce_trc.F90 \ 14805 par_oce.F90 \ 15013 par_c14b.F90 \ 15014 par_cfc.F90 \ 15015 par_kind.F90 \ 15016 par_lobster.F90 \ 15017 par_my_trc.F90 \ 15018 par_oce.F90 \ 15019 par_pisces.F90 \ 14806 15020 par_trc.F90 \ 14807 15021 phycst.F90 \ … … 14813 15027 trdmld_trc.F90 \ 14814 15028 trdmld_trc_oce.F90 \ 14815 trp_trc.F90 \14816 15029 zdf_oce.F90 \ 14817 15030 zdfddm.F90 \ 14818 15031 zdfmxl.F90 \ 14819 $(MODEL_LIB)(i om.o) \14820 $(MODEL_LIB)( lib_mpp.o) \15032 $(MODEL_LIB)(in_out_manager.o) \ 15033 $(MODEL_LIB)(iom.o) \ 14821 15034 $(MODEL_LIB)(oce_trc.o) \ 15035 $(MODEL_LIB)(par_trc.o) \ 15036 $(MODEL_LIB)(trc.o) \ 15037 $(MODEL_LIB)(trcsms_c14b.o) \ 15038 in_out_manager.F90 \ 15039 iom.F90 \ 15040 oce_trc.F90 \ 15041 par_trc.F90 \ 15042 trc.F90 \ 15043 trcsms_c14b.F90 \ 15044 KEY_CPP \ 15045 trcrst_c14b.F90 15046 $(MODEL_LIB)(trcrst_cfc.o) : \ 15047 $(MODEL_LIB)(dianam.o) \ 15048 $(MODEL_LIB)(dom_oce.o) \ 15049 $(MODEL_LIB)(domngb.o) \ 15050 $(MODEL_LIB)(in_out_manager.o) \ 15051 $(MODEL_LIB)(iom.o) \ 15052 $(MODEL_LIB)(iom_def.o) \ 15053 $(MODEL_LIB)(iom_ioipsl.o) \ 15054 $(MODEL_LIB)(iom_nf90.o) \ 15055 $(MODEL_LIB)(iom_rstdimg.o) \ 15056 $(MODEL_LIB)(lbclnk.o) \ 15057 $(MODEL_LIB)(ldfslp.o) \ 15058 $(MODEL_LIB)(ldftra_oce.o) \ 15059 $(MODEL_LIB)(lib_mpp.o) \ 15060 $(MODEL_LIB)(lib_print.o) \ 15061 $(MODEL_LIB)(oce.o) \ 15062 $(MODEL_LIB)(oce_trc.o) \ 15063 $(MODEL_LIB)(par_c14b.o) \ 15064 $(MODEL_LIB)(par_cfc.o) \ 15065 $(MODEL_LIB)(par_kind.o) \ 15066 $(MODEL_LIB)(par_lobster.o) \ 15067 $(MODEL_LIB)(par_my_trc.o) \ 15068 $(MODEL_LIB)(par_oce.o) \ 15069 $(MODEL_LIB)(par_pisces.o) \ 15070 $(MODEL_LIB)(par_trc.o) \ 15071 $(MODEL_LIB)(phycst.o) \ 15072 $(MODEL_LIB)(sbc_oce.o) \ 15073 $(MODEL_LIB)(sbcrnf.o) \ 15074 $(MODEL_LIB)(trabbl.o) \ 15075 $(MODEL_LIB)(traqsr.o) \ 15076 $(MODEL_LIB)(trc.o) \ 15077 $(MODEL_LIB)(trdmld_trc.o) \ 15078 $(MODEL_LIB)(trdmld_trc_oce.o) \ 15079 $(MODEL_LIB)(zdf_oce.o) \ 15080 $(MODEL_LIB)(zdfddm.o) \ 15081 $(MODEL_LIB)(zdfmxl.o) \ 15082 dianam.F90 \ 15083 dom_oce.F90 \ 15084 domngb.F90 \ 15085 in_out_manager.F90 \ 15086 iom.F90 \ 15087 iom_def.F90 \ 15088 iom_ioipsl.F90 \ 15089 iom_nf90.F90 \ 15090 iom_rstdimg.F90 \ 15091 lbclnk.F90 \ 15092 ldfslp.F90 \ 15093 ldftra_oce.F90 \ 15094 lib_mpp.F90 \ 15095 lib_print.f90 \ 15096 oce.F90 \ 15097 oce_trc.F90 \ 15098 par_c14b.F90 \ 15099 par_cfc.F90 \ 15100 par_kind.F90 \ 15101 par_lobster.F90 \ 15102 par_my_trc.F90 \ 15103 par_oce.F90 \ 15104 par_pisces.F90 \ 15105 par_trc.F90 \ 15106 phycst.F90 \ 15107 sbc_oce.F90 \ 15108 sbcrnf.F90 \ 15109 trabbl.F90 \ 15110 traqsr.F90 \ 15111 trc.F90 \ 15112 trdmld_trc.F90 \ 15113 trdmld_trc_oce.F90 \ 15114 zdf_oce.F90 \ 15115 zdfddm.F90 \ 15116 zdfmxl.F90 \ 15117 $(MODEL_LIB)(in_out_manager.o) \ 15118 $(MODEL_LIB)(iom.o) \ 15119 $(MODEL_LIB)(oce_trc.o) \ 15120 $(MODEL_LIB)(par_trc.o) \ 15121 $(MODEL_LIB)(trc.o) \ 15122 $(MODEL_LIB)(trcsms_cfc.o) \ 15123 in_out_manager.F90 \ 15124 iom.F90 \ 15125 oce_trc.F90 \ 15126 par_trc.F90 \ 15127 trc.F90 \ 15128 trcsms_cfc.F90 \ 15129 KEY_CPP \ 15130 trcrst_cfc.F90 15131 $(MODEL_LIB)(trcrst_lobster.o) : \ 15132 $(MODEL_LIB)(dianam.o) \ 15133 $(MODEL_LIB)(dom_oce.o) \ 15134 $(MODEL_LIB)(domngb.o) \ 15135 $(MODEL_LIB)(in_out_manager.o) \ 15136 $(MODEL_LIB)(iom_def.o) \ 15137 $(MODEL_LIB)(iom_ioipsl.o) \ 15138 $(MODEL_LIB)(iom_nf90.o) \ 15139 $(MODEL_LIB)(iom_rstdimg.o) \ 15140 $(MODEL_LIB)(lbclnk.o) \ 15141 $(MODEL_LIB)(ldfslp.o) \ 15142 $(MODEL_LIB)(ldftra_oce.o) \ 15143 $(MODEL_LIB)(lib_mpp.o) \ 15144 $(MODEL_LIB)(lib_print.o) \ 15145 $(MODEL_LIB)(oce.o) \ 15146 $(MODEL_LIB)(oce_trc.o) \ 15147 $(MODEL_LIB)(par_c14b.o) \ 15148 $(MODEL_LIB)(par_cfc.o) \ 15149 $(MODEL_LIB)(par_kind.o) \ 15150 $(MODEL_LIB)(par_lobster.o) \ 15151 $(MODEL_LIB)(par_my_trc.o) \ 15152 $(MODEL_LIB)(par_oce.o) \ 15153 $(MODEL_LIB)(par_pisces.o) \ 15154 $(MODEL_LIB)(par_trc.o) \ 15155 $(MODEL_LIB)(phycst.o) \ 15156 $(MODEL_LIB)(sbc_oce.o) \ 15157 $(MODEL_LIB)(sbcrnf.o) \ 15158 $(MODEL_LIB)(trabbl.o) \ 15159 $(MODEL_LIB)(traqsr.o) \ 15160 $(MODEL_LIB)(trc.o) \ 15161 $(MODEL_LIB)(trcbio.o) \ 15162 $(MODEL_LIB)(trcexp.o) \ 15163 $(MODEL_LIB)(trcopt.o) \ 15164 $(MODEL_LIB)(trcsed.o) \ 15165 $(MODEL_LIB)(trdmld_trc.o) \ 15166 $(MODEL_LIB)(trdmld_trc_oce.o) \ 15167 $(MODEL_LIB)(zdf_oce.o) \ 15168 $(MODEL_LIB)(zdfddm.o) \ 15169 $(MODEL_LIB)(zdfmxl.o) \ 15170 dianam.F90 \ 15171 dom_oce.F90 \ 15172 domngb.F90 \ 15173 in_out_manager.F90 \ 15174 iom_def.F90 \ 15175 iom_ioipsl.F90 \ 15176 iom_nf90.F90 \ 15177 iom_rstdimg.F90 \ 15178 lbclnk.F90 \ 15179 ldfslp.F90 \ 15180 ldftra_oce.F90 \ 15181 lib_mpp.F90 \ 15182 lib_print.f90 \ 15183 oce.F90 \ 15184 oce_trc.F90 \ 15185 par_c14b.F90 \ 15186 par_cfc.F90 \ 15187 par_kind.F90 \ 15188 par_lobster.F90 \ 15189 par_my_trc.F90 \ 15190 par_oce.F90 \ 15191 par_pisces.F90 \ 15192 par_trc.F90 \ 15193 phycst.F90 \ 15194 sbc_oce.F90 \ 15195 sbcrnf.F90 \ 15196 trabbl.F90 \ 15197 traqsr.F90 \ 15198 trc.F90 \ 15199 trcbio.F90 \ 15200 trcexp.F90 \ 15201 trcopt.F90 \ 15202 trcsed.F90 \ 15203 trdmld_trc.F90 \ 15204 trdmld_trc_oce.F90 \ 15205 zdf_oce.F90 \ 15206 zdfddm.F90 \ 15207 zdfmxl.F90 \ 15208 $(MODEL_LIB)(in_out_manager.o) \ 15209 $(MODEL_LIB)(iom.o) \ 15210 $(MODEL_LIB)(oce_trc.o) \ 15211 $(MODEL_LIB)(par_trc.o) \ 14822 15212 $(MODEL_LIB)(sms_lobster.o) \ 15213 $(MODEL_LIB)(trc.o) \ 15214 $(MODEL_LIB)(trcsms_lobster.o) \ 15215 in_out_manager.F90 \ 15216 iom.F90 \ 15217 oce_trc.F90 \ 15218 par_trc.F90 \ 15219 sms_lobster.F90 \ 15220 trc.F90 \ 15221 trcsms_lobster.F90 \ 15222 KEY_CPP \ 15223 trcrst_lobster.F90 15224 $(MODEL_LIB)(trcrst_my_trc.o) : \ 15225 KEY_CPP \ 15226 trcrst_my_trc.F90 15227 $(MODEL_LIB)(trcrst_pisces.o) : \ 15228 $(MODEL_LIB)(dianam.o) \ 15229 $(MODEL_LIB)(dom_oce.o) \ 15230 $(MODEL_LIB)(domngb.o) \ 15231 $(MODEL_LIB)(in_out_manager.o) \ 15232 $(MODEL_LIB)(iom.o) \ 15233 $(MODEL_LIB)(iom_def.o) \ 15234 $(MODEL_LIB)(iom_ioipsl.o) \ 15235 $(MODEL_LIB)(iom_nf90.o) \ 15236 $(MODEL_LIB)(iom_rstdimg.o) \ 15237 $(MODEL_LIB)(lbclnk.o) \ 15238 $(MODEL_LIB)(ldfslp.o) \ 15239 $(MODEL_LIB)(ldftra_oce.o) \ 15240 $(MODEL_LIB)(lib_mpp.o) \ 15241 $(MODEL_LIB)(lib_print.o) \ 15242 $(MODEL_LIB)(oce.o) \ 15243 $(MODEL_LIB)(oce_trc.o) \ 15244 $(MODEL_LIB)(p4zbio.o) \ 15245 $(MODEL_LIB)(p4zche.o) \ 15246 $(MODEL_LIB)(p4zflx.o) \ 15247 $(MODEL_LIB)(p4zint.o) \ 15248 $(MODEL_LIB)(p4zlys.o) \ 15249 $(MODEL_LIB)(p4zsed.o) \ 15250 $(MODEL_LIB)(par_c14b.o) \ 15251 $(MODEL_LIB)(par_cfc.o) \ 15252 $(MODEL_LIB)(par_kind.o) \ 15253 $(MODEL_LIB)(par_lobster.o) \ 15254 $(MODEL_LIB)(par_my_trc.o) \ 15255 $(MODEL_LIB)(par_oce.o) \ 15256 $(MODEL_LIB)(par_pisces.o) \ 15257 $(MODEL_LIB)(par_trc.o) \ 15258 $(MODEL_LIB)(phycst.o) \ 15259 $(MODEL_LIB)(sbc_oce.o) \ 15260 $(MODEL_LIB)(sbcrnf.o) \ 15261 $(MODEL_LIB)(sedmodel.o) \ 15262 $(MODEL_LIB)(sms_pisces.o) \ 15263 $(MODEL_LIB)(trabbl.o) \ 15264 $(MODEL_LIB)(traqsr.o) \ 15265 $(MODEL_LIB)(trc.o) \ 15266 $(MODEL_LIB)(trdmld_trc.o) \ 15267 $(MODEL_LIB)(trdmld_trc_oce.o) \ 15268 $(MODEL_LIB)(zdf_oce.o) \ 15269 $(MODEL_LIB)(zdfddm.o) \ 15270 $(MODEL_LIB)(zdfmxl.o) \ 15271 dianam.F90 \ 15272 dom_oce.F90 \ 15273 domngb.F90 \ 15274 in_out_manager.F90 \ 15275 iom.F90 \ 15276 iom_def.F90 \ 15277 iom_ioipsl.F90 \ 15278 iom_nf90.F90 \ 15279 iom_rstdimg.F90 \ 15280 lbclnk.F90 \ 15281 ldfslp.F90 \ 15282 ldftra_oce.F90 \ 15283 lib_mpp.F90 \ 15284 lib_print.f90 \ 15285 oce.F90 \ 15286 oce_trc.F90 \ 15287 p4zbio.F90 \ 15288 p4zche.F90 \ 15289 p4zflx.F90 \ 15290 p4zint.F90 \ 15291 p4zlys.F90 \ 15292 p4zsed.F90 \ 15293 par_c14b.F90 \ 15294 par_cfc.F90 \ 15295 par_kind.F90 \ 15296 par_lobster.F90 \ 15297 par_my_trc.F90 \ 15298 par_oce.F90 \ 15299 par_pisces.F90 \ 15300 par_trc.F90 \ 15301 phycst.F90 \ 15302 sbc_oce.F90 \ 15303 sbcrnf.F90 \ 15304 sedmodel.F90 \ 15305 sms_pisces.F90 \ 15306 trabbl.F90 \ 15307 traqsr.F90 \ 15308 trc.F90 \ 15309 trdmld_trc.F90 \ 15310 trdmld_trc_oce.F90 \ 15311 zdf_oce.F90 \ 15312 zdfddm.F90 \ 15313 zdfmxl.F90 \ 15314 $(MODEL_LIB)(in_out_manager.o) \ 15315 $(MODEL_LIB)(iom.o) \ 15316 $(MODEL_LIB)(oce_trc.o) \ 15317 $(MODEL_LIB)(par_trc.o) \ 14823 15318 $(MODEL_LIB)(sms_pisces.o) \ 14824 15319 $(MODEL_LIB)(trc.o) \ 14825 $(MODEL_LIB)(trcsms_c14b.o) \ 14826 $(MODEL_LIB)(trcsms_cfc.o) \ 14827 $(MODEL_LIB)(trcsms_my_trc.o) \ 14828 $(MODEL_LIB)(trctrp_lec.o) \ 14829 iom.F90 \ 14830 lib_mpp.F90 \ 15320 $(MODEL_LIB)(trcdta.o) \ 15321 $(MODEL_LIB)(trcsms_pisces.o) \ 15322 in_out_manager.F90 \ 15323 iom.F90 \ 14831 15324 oce_trc.F90 \ 14832 sms_lobster.F90 \15325 par_trc.F90 \ 14833 15326 sms_pisces.F90 \ 14834 15327 trc.F90 \ 14835 trcsms_c14b.F90 \ 14836 trcsms_cfc.F90 \ 14837 trcsms_my_trc.F90 \ 14838 trctrp_lec.F90 \ 14839 domzgr_substitute.h90 \ 14840 ldfeiv_substitute.h90 \ 14841 ldftra_substitute.h90 \ 14842 top_substitute.h90 \ 14843 vectopt_loop_substitute.h90 \ 14844 KEY_CPP \ 14845 trcrst.F90 15328 trcdta.F90 \ 15329 trcsms_pisces.F90 \ 15330 KEY_CPP \ 15331 trcrst_pisces.F90 14846 15332 $(MODEL_LIB)(trcsbc.o) : \ 14847 15333 $(MODEL_LIB)(dianam.o) \ … … 15000 15486 trdmld_trc_oce.F90 \ 15001 15487 domzgr_substitute.h90 \ 15488 ldfeiv_substitute.h90 \ 15489 ldftra_substitute.h90 \ 15490 top_substitute.h90 \ 15491 vectopt_loop_substitute.h90 \ 15002 15492 KEY_CPP \ 15003 15493 trcsed.F90 … … 15560 16050 $(MODEL_LIB)(trcstp.o) : \ 15561 16051 $(MODEL_LIB)(agrif_top_sponge.o) \ 16052 $(MODEL_LIB)(daymod.o) \ 15562 16053 $(MODEL_LIB)(dianam.o) \ 15563 16054 $(MODEL_LIB)(dom_oce.o) \ … … 15603 16094 $(MODEL_LIB)(trcnxt.o) \ 15604 16095 $(MODEL_LIB)(trcrad.o) \ 16096 $(MODEL_LIB)(trcrst_c14b.o) \ 16097 $(MODEL_LIB)(trcrst_cfc.o) \ 16098 $(MODEL_LIB)(trcrst_lobster.o) \ 16099 $(MODEL_LIB)(trcrst_my_trc.o) \ 16100 $(MODEL_LIB)(trcrst_pisces.o) \ 15605 16101 $(MODEL_LIB)(trcsbc.o) \ 15606 16102 $(MODEL_LIB)(trcsms_c14b.o) \ … … 15622 16118 $(MODEL_LIB)(zpshde_trc.o) \ 15623 16119 agrif_top_sponge.F90 \ 16120 daymod.F90 \ 15624 16121 dianam.F90 \ 15625 16122 dom_oce.F90 \ … … 15665 16162 trcnxt.F90 \ 15666 16163 trcrad.F90 \ 16164 trcrst_c14b.F90 \ 16165 trcrst_cfc.F90 \ 16166 trcrst_lobster.F90 \ 16167 trcrst_my_trc.F90 \ 16168 trcrst_pisces.F90 \ 15667 16169 trcsbc.F90 \ 15668 16170 trcsms_c14b.F90 \ … … 15823 16325 zpshde_trc.F90 \ 15824 16326 domzgr_substitute.h90 \ 16327 ldfeiv_substitute.h90 \ 16328 ldftra_substitute.h90 \ 16329 top_substitute.h90 \ 16330 vectopt_loop_substitute.h90 \ 15825 16331 $(AGRIF_LIB) \ 15826 16332 KEY_CPP \ … … 15935 16441 $(MODEL_LIB)(trabbl.o) \ 15936 16442 $(MODEL_LIB)(traqsr.o) \ 16443 $(MODEL_LIB)(trc.o) \ 15937 16444 $(MODEL_LIB)(zdf_oce.o) \ 15938 16445 $(MODEL_LIB)(zdfddm.o) \ … … 15958 16465 trabbl.F90 \ 15959 16466 traqsr.F90 \ 16467 trc.F90 \ 15960 16468 zdf_oce.F90 \ 15961 16469 zdfddm.F90 \ 15962 16470 zdfmxl.F90 \ 15963 16471 $(MODEL_LIB)(dianam.o) \ 16472 $(MODEL_LIB)(dom_oce.o) \ 15964 16473 $(MODEL_LIB)(iom.o) \ 15965 16474 $(MODEL_LIB)(oce_trc.o) \ 15966 16475 $(MODEL_LIB)(trc.o) \ 16476 $(MODEL_LIB)(trdmld_trc_oce.o) \ 16477 $(MODEL_LIB)(trp_trc.o) \ 15967 16478 dianam.F90 \ 16479 dom_oce.F90 \ 15968 16480 iom.F90 \ 15969 16481 oce_trc.F90 \ 15970 16482 trc.F90 \ 16483 trdmld_trc_oce.F90 \ 16484 trp_trc.F90 \ 15971 16485 domzgr_substitute.h90 \ 15972 16486 ldfeiv_substitute.h90 \ … … 16347 16861 $(MODEL_LIB)(trdmld.o) : \ 16348 16862 $(MODEL_LIB)(c1d.o) \ 16863 $(MODEL_LIB)(daymod.o) \ 16349 16864 $(MODEL_LIB)(dom_oce.o) \ 16350 16865 $(MODEL_LIB)(eosbn2.o) \ … … 16372 16887 $(MODEL_LIB)(zpshde.o) \ 16373 16888 c1d.F90 \ 16889 daymod.F90 \ 16374 16890 dom_oce.F90 \ 16375 16891 eosbn2.F90 \ -
branches/DEV_r1924_nocs_latphys/CONFIG/GYRE_LOBSTER/scripts/BB_make.ldef
r1791 r2201 34 34 #- 35 35 #- Prefix for preprocessing --- 36 prefix = -D 36 37 #-Q- sx8mercure prefix = -D 37 38 #-Q- sx9mercure prefix = -D -
branches/DEV_r1924_nocs_latphys/CONFIG/ORCA2_LIM/IGCM00/COMP/opa9.driver
r1853 r2201 86 86 if [ X${year} = X${PeriodInitYear} ] ; then 87 87 if [ ${month} -eq 01 ] ; then 88 # if year-1 does not exist we c opy year in (year-1)88 # if year-1 does not exist we create a file _noym1.nc copy of year 89 89 eval jobsbc_file_ym1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_$(( year - 1 )).nc 90 90 if [ ! -f ${jobsbc_file_ym1} ] ; then 91 91 eval jobsbc_file_ym1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_${year}.nc 92 eval runsbc_file_ym1=${file}_noy .nc92 eval runsbc_file_ym1=${file}_noym1.nc 93 93 else 94 94 eval jobsbc_file_ym1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_$(( year - 1 )).nc … … 116 116 if [ ! -f ${runsbc_file_yp1} ] ; then 117 117 118 # if year+1 does not exist we copy year in (year+1) 118 # if year+1 does not exist we create a file _noyp1.nc copy of year 119 eval jobsbc_file_yp1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_$(( year + 1 )).nc 119 120 if [ ! -f ${jobsbc_file_yp1} ] ; then 120 121 eval jobsbc_file_yp1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_${year}.nc 121 eval runsbc_file_yp1=${file}_noy .nc122 eval runsbc_file_yp1=${file}_noyp1.nc 122 123 else 123 124 eval jobsbc_file_yp1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_$(( year + 1 )).nc -
branches/DEV_r1924_nocs_latphys/CONFIG/ORCA2_LIM/scripts/BB_make
r1791 r2201 7 7 # Check your compilers option in consequence when using real F95 compilers 8 8 9 F_O += -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) 10 L_X = $(L_O) 9 11 #-Q- platine # Compiler options NEMO (CCRT Itanium Bull) 10 12 #-Q- platine F_O = -O3 -i4 -r8 -module $(MODDIR)/oce -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) … … 101 103 102 104 #check key compatibility 103 keycompat=$(if $( and $(findstring $1,$(P_P)),$(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible))105 keycompat=$(if $(word 2, $(findstring $1,$(P_P)) $(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible)) 104 106 105 107 KEY_LIST = \ … … 437 439 438 440 # Agrif library and conv 439 libagrif : $(call keycompat,key_iomput,key_agrif)441 libagrif : 440 442 ifeq ($(AGRIF),use) 441 443 @( if [ ! -d OPAFILES ]; then mkdir OPAFILES; fi ) … … 851 853 $(MODEL_LIB)(dom_oce.o) \ 852 854 $(MODEL_LIB)(in_out_manager.o) \ 855 $(MODEL_LIB)(obc_par.o) \ 853 856 $(MODEL_LIB)(oce.o) \ 854 857 $(MODEL_LIB)(opa.o) \ … … 865 868 dom_oce.F90 \ 866 869 in_out_manager.F90 \ 870 obc_par.F90 \ 867 871 oce.F90 \ 868 872 opa.F90 \ … … 1501 1505 diaar5.F90 1502 1506 $(MODEL_LIB)(diadimg.o) : \ 1503 $(MODEL_LIB)(lib_print.o) \ 1504 $(MODEL_LIB)(par_kind.o) \ 1505 $(MODEL_LIB)(par_oce.o) \ 1506 lib_print.f90 \ 1507 par_kind.F90 \ 1508 par_oce.F90 \ 1509 $(MODEL_LIB)(dom_oce.o) \ 1510 $(MODEL_LIB)(in_out_manager.o) \ 1511 $(MODEL_LIB)(oce.o) \ 1507 $(MODEL_LIB)(dom_oce.o) \ 1508 $(MODEL_LIB)(in_out_manager.o) \ 1509 $(MODEL_LIB)(iom.o) \ 1510 $(MODEL_LIB)(lib_print.o) \ 1511 $(MODEL_LIB)(par_kind.o) \ 1512 $(MODEL_LIB)(par_oce.o) \ 1513 $(MODEL_LIB)(phycst.o) \ 1514 $(MODEL_LIB)(prtctl.o) \ 1515 $(MODEL_LIB)(restart.o) \ 1516 dom_oce.F90 \ 1517 in_out_manager.F90 \ 1518 iom.F90 \ 1519 lib_print.f90 \ 1520 par_kind.F90 \ 1521 par_oce.F90 \ 1522 phycst.F90 \ 1523 prtctl.F90 \ 1524 restart.F90 \ 1525 $(MODEL_LIB)(daymod.o) \ 1526 $(MODEL_LIB)(dom_oce.o) \ 1527 $(MODEL_LIB)(in_out_manager.o) \ 1528 $(MODEL_LIB)(oce.o) \ 1529 daymod.F90 \ 1512 1530 dom_oce.F90 \ 1513 1531 in_out_manager.F90 \ … … 1664 1682 phycst.F90 \ 1665 1683 $(IOIPSL_LIB) \ 1666 KEY_CPP \1667 1684 dianam.F90 1668 1685 $(MODEL_LIB)(diaptr.o) : \ … … 1725 1742 diaptr.F90 1726 1743 $(MODEL_LIB)(diawri.o) : \ 1744 $(MODEL_LIB)(daymod.o) \ 1727 1745 $(MODEL_LIB)(dianam.o) \ 1728 1746 $(MODEL_LIB)(dom_ice_2.o) \ … … 1752 1770 $(MODEL_LIB)(sbcrnf.o) \ 1753 1771 $(MODEL_LIB)(zdf_oce.o) \ 1772 daymod.F90 \ 1754 1773 dianam.F90 \ 1755 1774 dom_ice_2.F90 \ … … 4912 4931 in_out_manager.F90 \ 4913 4932 lbcnfd.F90 \ 4914 $(AGRIF_LIB) \4915 4933 KEY_CPP \ 4916 4934 lib_mpp.F90 … … 5627 5645 $(MODEL_LIB)(limistate_2.o) \ 5628 5646 $(MODEL_LIB)(phycst.o) \ 5647 $(MODEL_LIB)(sbc_oce.o) \ 5629 5648 dom_ice_2.F90 \ 5630 5649 dom_oce.F90 \ … … 5637 5656 limistate_2.F90 \ 5638 5657 phycst.F90 \ 5658 sbc_oce.F90 \ 5639 5659 vectopt_loop_substitute.h90 \ 5640 5660 KEY_CPP \ … … 8316 8336 $(MODEL_LIB)(lib_print.o) \ 8317 8337 $(MODEL_LIB)(limwri_2.o) \ 8338 $(MODEL_LIB)(obc_oce.o) \ 8318 8339 $(MODEL_LIB)(obctra.o) \ 8319 8340 $(MODEL_LIB)(oce.o) \ … … 8387 8408 lib_print.f90 \ 8388 8409 limwri_2.F90 \ 8410 obc_oce.F90 \ 8389 8411 obctra.F90 \ 8390 8412 oce.F90 \ … … 9943 9965 $(MODEL_LIB)(lib_print.o) \ 9944 9966 $(MODEL_LIB)(obc_oce.o) \ 9967 $(MODEL_LIB)(obc_par.o) \ 9945 9968 $(MODEL_LIB)(oce.o) \ 9946 9969 $(MODEL_LIB)(par_kind.o) \ … … 9972 9995 lib_print.f90 \ 9973 9996 obc_oce.F90 \ 9997 obc_par.F90 \ 9974 9998 oce.F90 \ 9975 9999 par_kind.F90 \ … … 9998 10022 $(MODEL_LIB)(in_out_manager.o) \ 9999 10023 $(MODEL_LIB)(lbclnk.o) \ 10024 $(MODEL_LIB)(obc_oce.o) \ 10000 10025 $(MODEL_LIB)(obctra.o) \ 10001 10026 $(MODEL_LIB)(oce.o) \ … … 10014 10039 in_out_manager.F90 \ 10015 10040 lbclnk.F90 \ 10041 obc_oce.F90 \ 10016 10042 obctra.F90 \ 10017 10043 oce.F90 \ … … 10502 10528 $(MODEL_LIB)(trdmld.o) : \ 10503 10529 $(MODEL_LIB)(c1d.o) \ 10530 $(MODEL_LIB)(daymod.o) \ 10504 10531 $(MODEL_LIB)(dom_oce.o) \ 10505 10532 $(MODEL_LIB)(eosbn2.o) \ … … 10527 10554 $(MODEL_LIB)(zpshde.o) \ 10528 10555 c1d.F90 \ 10556 daymod.F90 \ 10529 10557 dom_oce.F90 \ 10530 10558 eosbn2.F90 \ -
branches/DEV_r1924_nocs_latphys/CONFIG/ORCA2_LIM/scripts/BB_make.ldef
r1791 r2201 34 34 #- 35 35 #- Prefix for preprocessing --- 36 prefix = -D 36 37 #-Q- sx8mercure prefix = -D 37 38 #-Q- sx9mercure prefix = -D -
branches/DEV_r1924_nocs_latphys/CONFIG/ORCA2_LIM_PISCES/scripts/BB_make
r1791 r2201 7 7 # Check your compilers option in consequence when using real F95 compilers 8 8 9 F_O += -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) 10 L_X = $(L_O) 9 11 #-Q- platine # Compiler options NEMO (CCRT Itanium Bull) 10 12 #-Q- platine F_O = -O3 -i4 -r8 -module $(MODDIR)/oce -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) … … 101 103 102 104 #check key compatibility 103 keycompat=$(if $( and $(findstring $1,$(P_P)),$(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible))105 keycompat=$(if $(word 2, $(findstring $1,$(P_P)) $(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible)) 104 106 105 107 KEY_LIST = \ … … 480 482 $(MODEL_LIB)(trcrad.o)\ 481 483 $(MODEL_LIB)(trcrst.o)\ 484 $(MODEL_LIB)(trcrst_c14b.o)\ 485 $(MODEL_LIB)(trcrst_cfc.o)\ 486 $(MODEL_LIB)(trcrst_lobster.o)\ 487 $(MODEL_LIB)(trcrst_my_trc.o)\ 488 $(MODEL_LIB)(trcrst_pisces.o)\ 482 489 $(MODEL_LIB)(trcsbc.o)\ 483 490 $(MODEL_LIB)(trcsed.o)\ … … 562 569 563 570 # Agrif library and conv 564 libagrif : $(call keycompat,key_iomput,key_agrif)571 libagrif : 565 572 ifeq ($(AGRIF),use) 566 573 @( if [ ! -d OPAFILES ]; then mkdir OPAFILES; fi ) … … 994 1001 $(MODEL_LIB)(dom_oce.o) \ 995 1002 $(MODEL_LIB)(in_out_manager.o) \ 1003 $(MODEL_LIB)(obc_par.o) \ 996 1004 $(MODEL_LIB)(oce.o) \ 997 1005 $(MODEL_LIB)(opa.o) \ … … 1009 1017 dom_oce.F90 \ 1010 1018 in_out_manager.F90 \ 1019 obc_par.F90 \ 1011 1020 oce.F90 \ 1012 1021 opa.F90 \ … … 1646 1655 diaar5.F90 1647 1656 $(MODEL_LIB)(diadimg.o) : \ 1648 $(MODEL_LIB)(lib_print.o) \ 1649 $(MODEL_LIB)(par_kind.o) \ 1650 $(MODEL_LIB)(par_oce.o) \ 1651 lib_print.f90 \ 1652 par_kind.F90 \ 1653 par_oce.F90 \ 1654 $(MODEL_LIB)(dom_oce.o) \ 1655 $(MODEL_LIB)(in_out_manager.o) \ 1656 $(MODEL_LIB)(oce.o) \ 1657 $(MODEL_LIB)(dom_oce.o) \ 1658 $(MODEL_LIB)(in_out_manager.o) \ 1659 $(MODEL_LIB)(iom.o) \ 1660 $(MODEL_LIB)(lib_print.o) \ 1661 $(MODEL_LIB)(par_kind.o) \ 1662 $(MODEL_LIB)(par_oce.o) \ 1663 $(MODEL_LIB)(phycst.o) \ 1664 $(MODEL_LIB)(prtctl.o) \ 1665 $(MODEL_LIB)(restart.o) \ 1666 dom_oce.F90 \ 1667 in_out_manager.F90 \ 1668 iom.F90 \ 1669 lib_print.f90 \ 1670 par_kind.F90 \ 1671 par_oce.F90 \ 1672 phycst.F90 \ 1673 prtctl.F90 \ 1674 restart.F90 \ 1675 $(MODEL_LIB)(daymod.o) \ 1676 $(MODEL_LIB)(dom_oce.o) \ 1677 $(MODEL_LIB)(in_out_manager.o) \ 1678 $(MODEL_LIB)(oce.o) \ 1679 daymod.F90 \ 1657 1680 dom_oce.F90 \ 1658 1681 in_out_manager.F90 \ … … 1809 1832 phycst.F90 \ 1810 1833 $(IOIPSL_LIB) \ 1811 KEY_CPP \1812 1834 dianam.F90 1813 1835 $(MODEL_LIB)(diaptr.o) : \ … … 1870 1892 diaptr.F90 1871 1893 $(MODEL_LIB)(diawri.o) : \ 1894 $(MODEL_LIB)(daymod.o) \ 1872 1895 $(MODEL_LIB)(dianam.o) \ 1873 1896 $(MODEL_LIB)(dom_ice_2.o) \ … … 1897 1920 $(MODEL_LIB)(sbcrnf.o) \ 1898 1921 $(MODEL_LIB)(zdf_oce.o) \ 1922 daymod.F90 \ 1899 1923 dianam.F90 \ 1900 1924 dom_ice_2.F90 \ … … 5057 5081 in_out_manager.F90 \ 5058 5082 lbcnfd.F90 \ 5059 $(AGRIF_LIB) \5060 5083 KEY_CPP \ 5061 5084 lib_mpp.F90 … … 5772 5795 $(MODEL_LIB)(limistate_2.o) \ 5773 5796 $(MODEL_LIB)(phycst.o) \ 5797 $(MODEL_LIB)(sbc_oce.o) \ 5774 5798 dom_ice_2.F90 \ 5775 5799 dom_oce.F90 \ … … 5782 5806 limistate_2.F90 \ 5783 5807 phycst.F90 \ 5808 sbc_oce.F90 \ 5784 5809 vectopt_loop_substitute.h90 \ 5785 5810 KEY_CPP \ … … 6856 6881 trc.F90 \ 6857 6882 domzgr_substitute.h90 \ 6883 ldfeiv_substitute.h90 \ 6884 ldftra_substitute.h90 \ 6885 top_substitute.h90 \ 6886 vectopt_loop_substitute.h90 \ 6858 6887 KEY_CPP \ 6859 6888 p4zbio.F90 … … 6898 6927 trc.F90 \ 6899 6928 domzgr_substitute.h90 \ 6929 ldfeiv_substitute.h90 \ 6930 ldftra_substitute.h90 \ 6931 top_substitute.h90 \ 6932 vectopt_loop_substitute.h90 \ 6900 6933 KEY_CPP \ 6901 6934 p4zche.F90 … … 6972 7005 trc.F90 \ 6973 7006 domzgr_substitute.h90 \ 7007 ldfeiv_substitute.h90 \ 7008 ldftra_substitute.h90 \ 7009 top_substitute.h90 \ 7010 vectopt_loop_substitute.h90 \ 6974 7011 KEY_CPP \ 6975 7012 p4zflx.F90 … … 7055 7092 trc.F90 \ 7056 7093 domzgr_substitute.h90 \ 7094 ldfeiv_substitute.h90 \ 7095 ldftra_substitute.h90 \ 7096 top_substitute.h90 \ 7097 vectopt_loop_substitute.h90 \ 7057 7098 KEY_CPP \ 7058 7099 p4zlim.F90 … … 7190 7231 trc.F90 \ 7191 7232 domzgr_substitute.h90 \ 7233 ldfeiv_substitute.h90 \ 7234 ldftra_substitute.h90 \ 7235 top_substitute.h90 \ 7236 vectopt_loop_substitute.h90 \ 7192 7237 KEY_CPP \ 7193 7238 p4zmeso.F90 … … 7264 7309 trc.F90 \ 7265 7310 domzgr_substitute.h90 \ 7311 ldfeiv_substitute.h90 \ 7312 ldftra_substitute.h90 \ 7313 top_substitute.h90 \ 7314 vectopt_loop_substitute.h90 \ 7266 7315 KEY_CPP \ 7267 7316 p4zmicro.F90 … … 7320 7369 trc.F90 \ 7321 7370 domzgr_substitute.h90 \ 7371 ldfeiv_substitute.h90 \ 7372 ldftra_substitute.h90 \ 7373 top_substitute.h90 \ 7374 vectopt_loop_substitute.h90 \ 7322 7375 KEY_CPP \ 7323 7376 p4zmort.F90 … … 7380 7433 trc_oce.F90 \ 7381 7434 domzgr_substitute.h90 \ 7435 ldfeiv_substitute.h90 \ 7436 ldftra_substitute.h90 \ 7437 top_substitute.h90 \ 7438 vectopt_loop_substitute.h90 \ 7382 7439 KEY_CPP \ 7383 7440 p4zopt.F90 … … 7460 7517 trc.F90 \ 7461 7518 domzgr_substitute.h90 \ 7519 ldfeiv_substitute.h90 \ 7520 ldftra_substitute.h90 \ 7521 top_substitute.h90 \ 7522 vectopt_loop_substitute.h90 \ 7462 7523 KEY_CPP \ 7463 7524 p4zprod.F90 … … 7534 7595 trc.F90 \ 7535 7596 domzgr_substitute.h90 \ 7597 ldfeiv_substitute.h90 \ 7598 ldftra_substitute.h90 \ 7599 top_substitute.h90 \ 7600 vectopt_loop_substitute.h90 \ 7536 7601 KEY_CPP \ 7537 7602 p4zrem.F90 … … 7710 7775 trc.F90 \ 7711 7776 domzgr_substitute.h90 \ 7777 ldfeiv_substitute.h90 \ 7778 ldftra_substitute.h90 \ 7779 top_substitute.h90 \ 7780 vectopt_loop_substitute.h90 \ 7712 7781 KEY_CPP \ 7713 7782 p4zsink.F90 … … 10252 10321 $(MODEL_LIB)(lib_print.o) \ 10253 10322 $(MODEL_LIB)(limwri_2.o) \ 10323 $(MODEL_LIB)(obc_oce.o) \ 10254 10324 $(MODEL_LIB)(obctra.o) \ 10255 10325 $(MODEL_LIB)(oce.o) \ … … 10333 10403 lib_print.f90 \ 10334 10404 limwri_2.F90 \ 10405 obc_oce.F90 \ 10335 10406 obctra.F90 \ 10336 10407 oce.F90 \ … … 11901 11972 $(MODEL_LIB)(lib_print.o) \ 11902 11973 $(MODEL_LIB)(obc_oce.o) \ 11974 $(MODEL_LIB)(obc_par.o) \ 11903 11975 $(MODEL_LIB)(oce.o) \ 11904 11976 $(MODEL_LIB)(par_kind.o) \ … … 11930 12002 lib_print.f90 \ 11931 12003 obc_oce.F90 \ 12004 obc_par.F90 \ 11932 12005 oce.F90 \ 11933 12006 par_kind.F90 \ … … 11956 12029 $(MODEL_LIB)(in_out_manager.o) \ 11957 12030 $(MODEL_LIB)(lbclnk.o) \ 12031 $(MODEL_LIB)(obc_oce.o) \ 11958 12032 $(MODEL_LIB)(obctra.o) \ 11959 12033 $(MODEL_LIB)(oce.o) \ … … 11972 12046 in_out_manager.F90 \ 11973 12047 lbclnk.F90 \ 12048 obc_oce.F90 \ 11974 12049 obctra.F90 \ 11975 12050 oce.F90 \ … … 13365 13440 $(MODEL_LIB)(lib_print.o) \ 13366 13441 $(MODEL_LIB)(oce.o) \ 13367 $(MODEL_LIB)(par_kind.o) \ 13368 $(MODEL_LIB)(par_oce.o) \ 13442 $(MODEL_LIB)(par_c14b.o) \ 13443 $(MODEL_LIB)(par_cfc.o) \ 13444 $(MODEL_LIB)(par_kind.o) \ 13445 $(MODEL_LIB)(par_lobster.o) \ 13446 $(MODEL_LIB)(par_my_trc.o) \ 13447 $(MODEL_LIB)(par_oce.o) \ 13448 $(MODEL_LIB)(par_pisces.o) \ 13369 13449 $(MODEL_LIB)(par_trc.o) \ 13370 13450 $(MODEL_LIB)(phycst.o) \ … … 13385 13465 lib_print.f90 \ 13386 13466 oce.F90 \ 13387 par_kind.F90 \ 13388 par_oce.F90 \ 13467 par_c14b.F90 \ 13468 par_cfc.F90 \ 13469 par_kind.F90 \ 13470 par_lobster.F90 \ 13471 par_my_trc.F90 \ 13472 par_oce.F90 \ 13473 par_pisces.F90 \ 13389 13474 par_trc.F90 \ 13390 13475 phycst.F90 \ … … 13402 13487 $(MODEL_LIB)(lib_mpp.o) \ 13403 13488 $(MODEL_LIB)(oce_trc.o) \ 13489 $(MODEL_LIB)(par_trc.o) \ 13404 13490 $(MODEL_LIB)(trc.o) \ 13405 13491 $(MODEL_LIB)(trdmld_trc_oce.o) \ … … 13410 13496 lib_mpp.F90 \ 13411 13497 oce_trc.F90 \ 13498 par_trc.F90 \ 13412 13499 trc.F90 \ 13413 13500 trdmld_trc_oce.F90 \ … … 13685 13772 trcexp.F90 13686 13773 $(MODEL_LIB)(trcini.o) : \ 13774 $(MODEL_LIB)(daymod.o) \ 13687 13775 $(MODEL_LIB)(dom_oce.o) \ 13688 13776 $(MODEL_LIB)(in_out_manager.o) \ … … 13720 13808 $(MODEL_LIB)(trclsm_my_trc.o) \ 13721 13809 $(MODEL_LIB)(trclsm_pisces.o) \ 13810 $(MODEL_LIB)(trcrst_c14b.o) \ 13811 $(MODEL_LIB)(trcrst_cfc.o) \ 13812 $(MODEL_LIB)(trcrst_lobster.o) \ 13813 $(MODEL_LIB)(trcrst_my_trc.o) \ 13814 $(MODEL_LIB)(trcrst_pisces.o) \ 13722 13815 $(MODEL_LIB)(trcsms_c14b.o) \ 13723 13816 $(MODEL_LIB)(trcsms_cfc.o) \ 13724 $(MODEL_LIB)(trcsms_my_trc.o) \13725 13817 $(MODEL_LIB)(trctrp_ctl.o) \ 13726 13818 $(MODEL_LIB)(trctrp_lec.o) \ … … 13730 13822 $(MODEL_LIB)(zdfddm.o) \ 13731 13823 $(MODEL_LIB)(zdfmxl.o) \ 13824 daymod.F90 \ 13732 13825 dom_oce.F90 \ 13733 13826 in_out_manager.F90 \ … … 13765 13858 trclsm_my_trc.F90 \ 13766 13859 trclsm_pisces.F90 \ 13860 trcrst_c14b.F90 \ 13861 trcrst_cfc.F90 \ 13862 trcrst_lobster.F90 \ 13863 trcrst_my_trc.F90 \ 13864 trcrst_pisces.F90 \ 13767 13865 trcsms_c14b.F90 \ 13768 13866 trcsms_cfc.F90 \ 13769 trcsms_my_trc.F90 \13770 13867 trctrp_ctl.F90 \ 13771 13868 trctrp_lec.F90 \ … … 15022 15119 trc.F90 \ 15023 15120 domzgr_substitute.h90 \ 15121 ldfeiv_substitute.h90 \ 15122 ldftra_substitute.h90 \ 15123 top_substitute.h90 \ 15124 vectopt_loop_substitute.h90 \ 15024 15125 KEY_CPP \ 15025 15126 trcopt.F90 … … 15120 15221 $(MODEL_LIB)(par_trc.o) \ 15121 15222 $(MODEL_LIB)(phycst.o) \ 15223 $(MODEL_LIB)(prtctl.o) \ 15224 $(MODEL_LIB)(restart.o) \ 15225 $(MODEL_LIB)(sbc_oce.o) \ 15226 $(MODEL_LIB)(sbcrnf.o) \ 15227 $(MODEL_LIB)(sms_lobster.o) \ 15228 $(MODEL_LIB)(sms_pisces.o) \ 15229 $(MODEL_LIB)(trabbl.o) \ 15230 $(MODEL_LIB)(traqsr.o) \ 15231 $(MODEL_LIB)(trc.o) \ 15232 $(MODEL_LIB)(trcdta.o) \ 15233 $(MODEL_LIB)(trcsms_c14b.o) \ 15234 $(MODEL_LIB)(trcsms_cfc.o) \ 15235 $(MODEL_LIB)(trcsms_lobster.o) \ 15236 $(MODEL_LIB)(trcsms_pisces.o) \ 15237 $(MODEL_LIB)(trp_trc.o) \ 15238 $(MODEL_LIB)(zdf_oce.o) \ 15239 $(MODEL_LIB)(zdfddm.o) \ 15240 $(MODEL_LIB)(zdfmxl.o) \ 15241 dianam.F90 \ 15242 dom_oce.F90 \ 15243 domngb.F90 \ 15244 in_out_manager.F90 \ 15245 iom.F90 \ 15246 iom_def.F90 \ 15247 iom_ioipsl.F90 \ 15248 iom_nf90.F90 \ 15249 iom_rstdimg.F90 \ 15250 lbclnk.F90 \ 15251 lbcnfd.F90 \ 15252 ldfslp.F90 \ 15253 ldftra_oce.F90 \ 15254 lib_mpp.F90 \ 15255 oce.F90 \ 15256 oce_trc.F90 \ 15257 par_oce.F90 \ 15258 par_trc.F90 \ 15259 phycst.F90 \ 15260 prtctl.F90 \ 15261 restart.F90 \ 15262 sbc_oce.F90 \ 15263 sbcrnf.F90 \ 15264 sms_lobster.F90 \ 15265 sms_pisces.F90 \ 15266 trabbl.F90 \ 15267 traqsr.F90 \ 15268 trc.F90 \ 15269 trcdta.F90 \ 15270 trcsms_c14b.F90 \ 15271 trcsms_cfc.F90 \ 15272 trcsms_lobster.F90 \ 15273 trcsms_pisces.F90 \ 15274 trp_trc.F90 \ 15275 zdf_oce.F90 \ 15276 zdfddm.F90 \ 15277 zdfmxl.F90 \ 15278 $(MODEL_LIB)(daymod.o) \ 15279 $(MODEL_LIB)(iom.o) \ 15280 $(MODEL_LIB)(lib_mpp.o) \ 15281 $(MODEL_LIB)(oce_trc.o) \ 15282 $(MODEL_LIB)(trc.o) \ 15283 $(MODEL_LIB)(trcrst_c14b.o) \ 15284 $(MODEL_LIB)(trcrst_cfc.o) \ 15285 $(MODEL_LIB)(trcrst_lobster.o) \ 15286 $(MODEL_LIB)(trcrst_my_trc.o) \ 15287 $(MODEL_LIB)(trcrst_pisces.o) \ 15288 $(MODEL_LIB)(trctrp_lec.o) \ 15289 daymod.F90 \ 15290 iom.F90 \ 15291 lib_mpp.F90 \ 15292 oce_trc.F90 \ 15293 trc.F90 \ 15294 trcrst_c14b.F90 \ 15295 trcrst_cfc.F90 \ 15296 trcrst_lobster.F90 \ 15297 trcrst_my_trc.F90 \ 15298 trcrst_pisces.F90 \ 15299 trctrp_lec.F90 \ 15300 domzgr_substitute.h90 \ 15301 ldfeiv_substitute.h90 \ 15302 ldftra_substitute.h90 \ 15303 top_substitute.h90 \ 15304 vectopt_loop_substitute.h90 \ 15305 KEY_CPP \ 15306 trcrst.F90 15307 $(MODEL_LIB)(trcrst_c14b.o) : \ 15308 $(MODEL_LIB)(dianam.o) \ 15309 $(MODEL_LIB)(dom_oce.o) \ 15310 $(MODEL_LIB)(domngb.o) \ 15311 $(MODEL_LIB)(in_out_manager.o) \ 15312 $(MODEL_LIB)(iom.o) \ 15313 $(MODEL_LIB)(iom_def.o) \ 15314 $(MODEL_LIB)(iom_ioipsl.o) \ 15315 $(MODEL_LIB)(iom_nf90.o) \ 15316 $(MODEL_LIB)(iom_rstdimg.o) \ 15317 $(MODEL_LIB)(lbclnk.o) \ 15318 $(MODEL_LIB)(ldfslp.o) \ 15319 $(MODEL_LIB)(ldftra_oce.o) \ 15320 $(MODEL_LIB)(lib_mpp.o) \ 15321 $(MODEL_LIB)(lib_print.o) \ 15322 $(MODEL_LIB)(oce.o) \ 15323 $(MODEL_LIB)(oce_trc.o) \ 15324 $(MODEL_LIB)(par_c14b.o) \ 15325 $(MODEL_LIB)(par_cfc.o) \ 15326 $(MODEL_LIB)(par_kind.o) \ 15327 $(MODEL_LIB)(par_lobster.o) \ 15328 $(MODEL_LIB)(par_my_trc.o) \ 15329 $(MODEL_LIB)(par_oce.o) \ 15330 $(MODEL_LIB)(par_pisces.o) \ 15331 $(MODEL_LIB)(par_trc.o) \ 15332 $(MODEL_LIB)(phycst.o) \ 15122 15333 $(MODEL_LIB)(sbc_oce.o) \ 15123 15334 $(MODEL_LIB)(sbcrnf.o) \ … … 15127 15338 $(MODEL_LIB)(trdmld_trc.o) \ 15128 15339 $(MODEL_LIB)(trdmld_trc_oce.o) \ 15129 $(MODEL_LIB)(trp_trc.o) \15130 15340 $(MODEL_LIB)(zdf_oce.o) \ 15131 15341 $(MODEL_LIB)(zdfddm.o) \ … … 15141 15351 iom_rstdimg.F90 \ 15142 15352 lbclnk.F90 \ 15143 lbcnfd.F90 \15144 15353 ldfslp.F90 \ 15145 15354 ldftra_oce.F90 \ 15146 15355 lib_mpp.F90 \ 15356 lib_print.f90 \ 15147 15357 oce.F90 \ 15148 15358 oce_trc.F90 \ 15149 par_oce.F90 \ 15359 par_c14b.F90 \ 15360 par_cfc.F90 \ 15361 par_kind.F90 \ 15362 par_lobster.F90 \ 15363 par_my_trc.F90 \ 15364 par_oce.F90 \ 15365 par_pisces.F90 \ 15150 15366 par_trc.F90 \ 15151 15367 phycst.F90 \ … … 15157 15373 trdmld_trc.F90 \ 15158 15374 trdmld_trc_oce.F90 \ 15159 trp_trc.F90 \15160 15375 zdf_oce.F90 \ 15161 15376 zdfddm.F90 \ 15162 15377 zdfmxl.F90 \ 15163 $(MODEL_LIB)(i om.o) \15164 $(MODEL_LIB)( lib_mpp.o) \15378 $(MODEL_LIB)(in_out_manager.o) \ 15379 $(MODEL_LIB)(iom.o) \ 15165 15380 $(MODEL_LIB)(oce_trc.o) \ 15381 $(MODEL_LIB)(par_trc.o) \ 15382 $(MODEL_LIB)(trc.o) \ 15383 $(MODEL_LIB)(trcsms_c14b.o) \ 15384 in_out_manager.F90 \ 15385 iom.F90 \ 15386 oce_trc.F90 \ 15387 par_trc.F90 \ 15388 trc.F90 \ 15389 trcsms_c14b.F90 \ 15390 KEY_CPP \ 15391 trcrst_c14b.F90 15392 $(MODEL_LIB)(trcrst_cfc.o) : \ 15393 $(MODEL_LIB)(dianam.o) \ 15394 $(MODEL_LIB)(dom_oce.o) \ 15395 $(MODEL_LIB)(domngb.o) \ 15396 $(MODEL_LIB)(in_out_manager.o) \ 15397 $(MODEL_LIB)(iom.o) \ 15398 $(MODEL_LIB)(iom_def.o) \ 15399 $(MODEL_LIB)(iom_ioipsl.o) \ 15400 $(MODEL_LIB)(iom_nf90.o) \ 15401 $(MODEL_LIB)(iom_rstdimg.o) \ 15402 $(MODEL_LIB)(lbclnk.o) \ 15403 $(MODEL_LIB)(ldfslp.o) \ 15404 $(MODEL_LIB)(ldftra_oce.o) \ 15405 $(MODEL_LIB)(lib_mpp.o) \ 15406 $(MODEL_LIB)(lib_print.o) \ 15407 $(MODEL_LIB)(oce.o) \ 15408 $(MODEL_LIB)(oce_trc.o) \ 15409 $(MODEL_LIB)(par_c14b.o) \ 15410 $(MODEL_LIB)(par_cfc.o) \ 15411 $(MODEL_LIB)(par_kind.o) \ 15412 $(MODEL_LIB)(par_lobster.o) \ 15413 $(MODEL_LIB)(par_my_trc.o) \ 15414 $(MODEL_LIB)(par_oce.o) \ 15415 $(MODEL_LIB)(par_pisces.o) \ 15416 $(MODEL_LIB)(par_trc.o) \ 15417 $(MODEL_LIB)(phycst.o) \ 15418 $(MODEL_LIB)(sbc_oce.o) \ 15419 $(MODEL_LIB)(sbcrnf.o) \ 15420 $(MODEL_LIB)(trabbl.o) \ 15421 $(MODEL_LIB)(traqsr.o) \ 15422 $(MODEL_LIB)(trc.o) \ 15423 $(MODEL_LIB)(trdmld_trc.o) \ 15424 $(MODEL_LIB)(trdmld_trc_oce.o) \ 15425 $(MODEL_LIB)(zdf_oce.o) \ 15426 $(MODEL_LIB)(zdfddm.o) \ 15427 $(MODEL_LIB)(zdfmxl.o) \ 15428 dianam.F90 \ 15429 dom_oce.F90 \ 15430 domngb.F90 \ 15431 in_out_manager.F90 \ 15432 iom.F90 \ 15433 iom_def.F90 \ 15434 iom_ioipsl.F90 \ 15435 iom_nf90.F90 \ 15436 iom_rstdimg.F90 \ 15437 lbclnk.F90 \ 15438 ldfslp.F90 \ 15439 ldftra_oce.F90 \ 15440 lib_mpp.F90 \ 15441 lib_print.f90 \ 15442 oce.F90 \ 15443 oce_trc.F90 \ 15444 par_c14b.F90 \ 15445 par_cfc.F90 \ 15446 par_kind.F90 \ 15447 par_lobster.F90 \ 15448 par_my_trc.F90 \ 15449 par_oce.F90 \ 15450 par_pisces.F90 \ 15451 par_trc.F90 \ 15452 phycst.F90 \ 15453 sbc_oce.F90 \ 15454 sbcrnf.F90 \ 15455 trabbl.F90 \ 15456 traqsr.F90 \ 15457 trc.F90 \ 15458 trdmld_trc.F90 \ 15459 trdmld_trc_oce.F90 \ 15460 zdf_oce.F90 \ 15461 zdfddm.F90 \ 15462 zdfmxl.F90 \ 15463 $(MODEL_LIB)(in_out_manager.o) \ 15464 $(MODEL_LIB)(iom.o) \ 15465 $(MODEL_LIB)(oce_trc.o) \ 15466 $(MODEL_LIB)(par_trc.o) \ 15467 $(MODEL_LIB)(trc.o) \ 15468 $(MODEL_LIB)(trcsms_cfc.o) \ 15469 in_out_manager.F90 \ 15470 iom.F90 \ 15471 oce_trc.F90 \ 15472 par_trc.F90 \ 15473 trc.F90 \ 15474 trcsms_cfc.F90 \ 15475 KEY_CPP \ 15476 trcrst_cfc.F90 15477 $(MODEL_LIB)(trcrst_lobster.o) : \ 15478 $(MODEL_LIB)(dianam.o) \ 15479 $(MODEL_LIB)(dom_oce.o) \ 15480 $(MODEL_LIB)(domngb.o) \ 15481 $(MODEL_LIB)(in_out_manager.o) \ 15482 $(MODEL_LIB)(iom_def.o) \ 15483 $(MODEL_LIB)(iom_ioipsl.o) \ 15484 $(MODEL_LIB)(iom_nf90.o) \ 15485 $(MODEL_LIB)(iom_rstdimg.o) \ 15486 $(MODEL_LIB)(lbclnk.o) \ 15487 $(MODEL_LIB)(ldfslp.o) \ 15488 $(MODEL_LIB)(ldftra_oce.o) \ 15489 $(MODEL_LIB)(lib_mpp.o) \ 15490 $(MODEL_LIB)(lib_print.o) \ 15491 $(MODEL_LIB)(oce.o) \ 15492 $(MODEL_LIB)(oce_trc.o) \ 15493 $(MODEL_LIB)(par_c14b.o) \ 15494 $(MODEL_LIB)(par_cfc.o) \ 15495 $(MODEL_LIB)(par_kind.o) \ 15496 $(MODEL_LIB)(par_lobster.o) \ 15497 $(MODEL_LIB)(par_my_trc.o) \ 15498 $(MODEL_LIB)(par_oce.o) \ 15499 $(MODEL_LIB)(par_pisces.o) \ 15500 $(MODEL_LIB)(par_trc.o) \ 15501 $(MODEL_LIB)(phycst.o) \ 15502 $(MODEL_LIB)(sbc_oce.o) \ 15503 $(MODEL_LIB)(sbcrnf.o) \ 15504 $(MODEL_LIB)(trabbl.o) \ 15505 $(MODEL_LIB)(traqsr.o) \ 15506 $(MODEL_LIB)(trc.o) \ 15507 $(MODEL_LIB)(trcbio.o) \ 15508 $(MODEL_LIB)(trcexp.o) \ 15509 $(MODEL_LIB)(trcopt.o) \ 15510 $(MODEL_LIB)(trcsed.o) \ 15511 $(MODEL_LIB)(trdmld_trc.o) \ 15512 $(MODEL_LIB)(trdmld_trc_oce.o) \ 15513 $(MODEL_LIB)(zdf_oce.o) \ 15514 $(MODEL_LIB)(zdfddm.o) \ 15515 $(MODEL_LIB)(zdfmxl.o) \ 15516 dianam.F90 \ 15517 dom_oce.F90 \ 15518 domngb.F90 \ 15519 in_out_manager.F90 \ 15520 iom_def.F90 \ 15521 iom_ioipsl.F90 \ 15522 iom_nf90.F90 \ 15523 iom_rstdimg.F90 \ 15524 lbclnk.F90 \ 15525 ldfslp.F90 \ 15526 ldftra_oce.F90 \ 15527 lib_mpp.F90 \ 15528 lib_print.f90 \ 15529 oce.F90 \ 15530 oce_trc.F90 \ 15531 par_c14b.F90 \ 15532 par_cfc.F90 \ 15533 par_kind.F90 \ 15534 par_lobster.F90 \ 15535 par_my_trc.F90 \ 15536 par_oce.F90 \ 15537 par_pisces.F90 \ 15538 par_trc.F90 \ 15539 phycst.F90 \ 15540 sbc_oce.F90 \ 15541 sbcrnf.F90 \ 15542 trabbl.F90 \ 15543 traqsr.F90 \ 15544 trc.F90 \ 15545 trcbio.F90 \ 15546 trcexp.F90 \ 15547 trcopt.F90 \ 15548 trcsed.F90 \ 15549 trdmld_trc.F90 \ 15550 trdmld_trc_oce.F90 \ 15551 zdf_oce.F90 \ 15552 zdfddm.F90 \ 15553 zdfmxl.F90 \ 15554 $(MODEL_LIB)(in_out_manager.o) \ 15555 $(MODEL_LIB)(iom.o) \ 15556 $(MODEL_LIB)(oce_trc.o) \ 15557 $(MODEL_LIB)(par_trc.o) \ 15166 15558 $(MODEL_LIB)(sms_lobster.o) \ 15559 $(MODEL_LIB)(trc.o) \ 15560 $(MODEL_LIB)(trcsms_lobster.o) \ 15561 in_out_manager.F90 \ 15562 iom.F90 \ 15563 oce_trc.F90 \ 15564 par_trc.F90 \ 15565 sms_lobster.F90 \ 15566 trc.F90 \ 15567 trcsms_lobster.F90 \ 15568 KEY_CPP \ 15569 trcrst_lobster.F90 15570 $(MODEL_LIB)(trcrst_my_trc.o) : \ 15571 KEY_CPP \ 15572 trcrst_my_trc.F90 15573 $(MODEL_LIB)(trcrst_pisces.o) : \ 15574 $(MODEL_LIB)(dianam.o) \ 15575 $(MODEL_LIB)(dom_oce.o) \ 15576 $(MODEL_LIB)(domngb.o) \ 15577 $(MODEL_LIB)(in_out_manager.o) \ 15578 $(MODEL_LIB)(iom.o) \ 15579 $(MODEL_LIB)(iom_def.o) \ 15580 $(MODEL_LIB)(iom_ioipsl.o) \ 15581 $(MODEL_LIB)(iom_nf90.o) \ 15582 $(MODEL_LIB)(iom_rstdimg.o) \ 15583 $(MODEL_LIB)(lbclnk.o) \ 15584 $(MODEL_LIB)(ldfslp.o) \ 15585 $(MODEL_LIB)(ldftra_oce.o) \ 15586 $(MODEL_LIB)(lib_mpp.o) \ 15587 $(MODEL_LIB)(lib_print.o) \ 15588 $(MODEL_LIB)(oce.o) \ 15589 $(MODEL_LIB)(oce_trc.o) \ 15590 $(MODEL_LIB)(p4zbio.o) \ 15591 $(MODEL_LIB)(p4zche.o) \ 15592 $(MODEL_LIB)(p4zflx.o) \ 15593 $(MODEL_LIB)(p4zint.o) \ 15594 $(MODEL_LIB)(p4zlys.o) \ 15595 $(MODEL_LIB)(p4zsed.o) \ 15596 $(MODEL_LIB)(par_c14b.o) \ 15597 $(MODEL_LIB)(par_cfc.o) \ 15598 $(MODEL_LIB)(par_kind.o) \ 15599 $(MODEL_LIB)(par_lobster.o) \ 15600 $(MODEL_LIB)(par_my_trc.o) \ 15601 $(MODEL_LIB)(par_oce.o) \ 15602 $(MODEL_LIB)(par_pisces.o) \ 15603 $(MODEL_LIB)(par_trc.o) \ 15604 $(MODEL_LIB)(phycst.o) \ 15605 $(MODEL_LIB)(sbc_oce.o) \ 15606 $(MODEL_LIB)(sbcrnf.o) \ 15607 $(MODEL_LIB)(sedmodel.o) \ 15608 $(MODEL_LIB)(sms_pisces.o) \ 15609 $(MODEL_LIB)(trabbl.o) \ 15610 $(MODEL_LIB)(traqsr.o) \ 15611 $(MODEL_LIB)(trc.o) \ 15612 $(MODEL_LIB)(trdmld_trc.o) \ 15613 $(MODEL_LIB)(trdmld_trc_oce.o) \ 15614 $(MODEL_LIB)(zdf_oce.o) \ 15615 $(MODEL_LIB)(zdfddm.o) \ 15616 $(MODEL_LIB)(zdfmxl.o) \ 15617 dianam.F90 \ 15618 dom_oce.F90 \ 15619 domngb.F90 \ 15620 in_out_manager.F90 \ 15621 iom.F90 \ 15622 iom_def.F90 \ 15623 iom_ioipsl.F90 \ 15624 iom_nf90.F90 \ 15625 iom_rstdimg.F90 \ 15626 lbclnk.F90 \ 15627 ldfslp.F90 \ 15628 ldftra_oce.F90 \ 15629 lib_mpp.F90 \ 15630 lib_print.f90 \ 15631 oce.F90 \ 15632 oce_trc.F90 \ 15633 p4zbio.F90 \ 15634 p4zche.F90 \ 15635 p4zflx.F90 \ 15636 p4zint.F90 \ 15637 p4zlys.F90 \ 15638 p4zsed.F90 \ 15639 par_c14b.F90 \ 15640 par_cfc.F90 \ 15641 par_kind.F90 \ 15642 par_lobster.F90 \ 15643 par_my_trc.F90 \ 15644 par_oce.F90 \ 15645 par_pisces.F90 \ 15646 par_trc.F90 \ 15647 phycst.F90 \ 15648 sbc_oce.F90 \ 15649 sbcrnf.F90 \ 15650 sedmodel.F90 \ 15651 sms_pisces.F90 \ 15652 trabbl.F90 \ 15653 traqsr.F90 \ 15654 trc.F90 \ 15655 trdmld_trc.F90 \ 15656 trdmld_trc_oce.F90 \ 15657 zdf_oce.F90 \ 15658 zdfddm.F90 \ 15659 zdfmxl.F90 \ 15660 $(MODEL_LIB)(in_out_manager.o) \ 15661 $(MODEL_LIB)(iom.o) \ 15662 $(MODEL_LIB)(oce_trc.o) \ 15663 $(MODEL_LIB)(par_trc.o) \ 15167 15664 $(MODEL_LIB)(sms_pisces.o) \ 15168 15665 $(MODEL_LIB)(trc.o) \ 15169 $(MODEL_LIB)(trcsms_c14b.o) \ 15170 $(MODEL_LIB)(trcsms_cfc.o) \ 15171 $(MODEL_LIB)(trcsms_my_trc.o) \ 15172 $(MODEL_LIB)(trctrp_lec.o) \ 15173 iom.F90 \ 15174 lib_mpp.F90 \ 15666 $(MODEL_LIB)(trcdta.o) \ 15667 $(MODEL_LIB)(trcsms_pisces.o) \ 15668 in_out_manager.F90 \ 15669 iom.F90 \ 15175 15670 oce_trc.F90 \ 15176 sms_lobster.F90 \15671 par_trc.F90 \ 15177 15672 sms_pisces.F90 \ 15178 15673 trc.F90 \ 15179 trcsms_c14b.F90 \ 15180 trcsms_cfc.F90 \ 15181 trcsms_my_trc.F90 \ 15182 trctrp_lec.F90 \ 15183 domzgr_substitute.h90 \ 15184 ldfeiv_substitute.h90 \ 15185 ldftra_substitute.h90 \ 15186 top_substitute.h90 \ 15187 vectopt_loop_substitute.h90 \ 15188 KEY_CPP \ 15189 trcrst.F90 15674 trcdta.F90 \ 15675 trcsms_pisces.F90 \ 15676 KEY_CPP \ 15677 trcrst_pisces.F90 15190 15678 $(MODEL_LIB)(trcsbc.o) : \ 15191 15679 $(MODEL_LIB)(dianam.o) \ … … 15344 15832 trdmld_trc_oce.F90 \ 15345 15833 domzgr_substitute.h90 \ 15834 ldfeiv_substitute.h90 \ 15835 ldftra_substitute.h90 \ 15836 top_substitute.h90 \ 15837 vectopt_loop_substitute.h90 \ 15346 15838 KEY_CPP \ 15347 15839 trcsed.F90 … … 15904 16396 $(MODEL_LIB)(trcstp.o) : \ 15905 16397 $(MODEL_LIB)(agrif_top_sponge.o) \ 16398 $(MODEL_LIB)(daymod.o) \ 15906 16399 $(MODEL_LIB)(dianam.o) \ 15907 16400 $(MODEL_LIB)(dom_oce.o) \ … … 15947 16440 $(MODEL_LIB)(trcnxt.o) \ 15948 16441 $(MODEL_LIB)(trcrad.o) \ 16442 $(MODEL_LIB)(trcrst_c14b.o) \ 16443 $(MODEL_LIB)(trcrst_cfc.o) \ 16444 $(MODEL_LIB)(trcrst_lobster.o) \ 16445 $(MODEL_LIB)(trcrst_my_trc.o) \ 16446 $(MODEL_LIB)(trcrst_pisces.o) \ 15949 16447 $(MODEL_LIB)(trcsbc.o) \ 15950 16448 $(MODEL_LIB)(trcsms_c14b.o) \ … … 15966 16464 $(MODEL_LIB)(zpshde_trc.o) \ 15967 16465 agrif_top_sponge.F90 \ 16466 daymod.F90 \ 15968 16467 dianam.F90 \ 15969 16468 dom_oce.F90 \ … … 16009 16508 trcnxt.F90 \ 16010 16509 trcrad.F90 \ 16510 trcrst_c14b.F90 \ 16511 trcrst_cfc.F90 \ 16512 trcrst_lobster.F90 \ 16513 trcrst_my_trc.F90 \ 16514 trcrst_pisces.F90 \ 16011 16515 trcsbc.F90 \ 16012 16516 trcsms_c14b.F90 \ … … 16169 16673 zpshde_trc.F90 \ 16170 16674 domzgr_substitute.h90 \ 16675 ldfeiv_substitute.h90 \ 16676 ldftra_substitute.h90 \ 16677 top_substitute.h90 \ 16678 vectopt_loop_substitute.h90 \ 16171 16679 $(AGRIF_LIB) \ 16172 16680 KEY_CPP \ … … 16281 16789 $(MODEL_LIB)(trabbl.o) \ 16282 16790 $(MODEL_LIB)(traqsr.o) \ 16791 $(MODEL_LIB)(trc.o) \ 16283 16792 $(MODEL_LIB)(zdf_oce.o) \ 16284 16793 $(MODEL_LIB)(zdfddm.o) \ … … 16304 16813 trabbl.F90 \ 16305 16814 traqsr.F90 \ 16815 trc.F90 \ 16306 16816 zdf_oce.F90 \ 16307 16817 zdfddm.F90 \ 16308 16818 zdfmxl.F90 \ 16309 16819 $(MODEL_LIB)(dianam.o) \ 16820 $(MODEL_LIB)(dom_oce.o) \ 16310 16821 $(MODEL_LIB)(iom.o) \ 16311 16822 $(MODEL_LIB)(oce_trc.o) \ 16312 16823 $(MODEL_LIB)(trc.o) \ 16824 $(MODEL_LIB)(trdmld_trc_oce.o) \ 16825 $(MODEL_LIB)(trp_trc.o) \ 16313 16826 dianam.F90 \ 16827 dom_oce.F90 \ 16314 16828 iom.F90 \ 16315 16829 oce_trc.F90 \ 16316 16830 trc.F90 \ 16831 trdmld_trc_oce.F90 \ 16832 trp_trc.F90 \ 16317 16833 domzgr_substitute.h90 \ 16318 16834 ldfeiv_substitute.h90 \ … … 16693 17209 $(MODEL_LIB)(trdmld.o) : \ 16694 17210 $(MODEL_LIB)(c1d.o) \ 17211 $(MODEL_LIB)(daymod.o) \ 16695 17212 $(MODEL_LIB)(dom_oce.o) \ 16696 17213 $(MODEL_LIB)(eosbn2.o) \ … … 16718 17235 $(MODEL_LIB)(zpshde.o) \ 16719 17236 c1d.F90 \ 17237 daymod.F90 \ 16720 17238 dom_oce.F90 \ 16721 17239 eosbn2.F90 \ -
branches/DEV_r1924_nocs_latphys/CONFIG/ORCA2_LIM_PISCES/scripts/BB_make.ldef
r1791 r2201 34 34 #- 35 35 #- Prefix for preprocessing --- 36 prefix = -D 36 37 #-Q- sx8mercure prefix = -D 37 38 #-Q- sx9mercure prefix = -D -
branches/DEV_r1924_nocs_latphys/CONFIG/ORCA2_OFF_PISCES/scripts/BB_make
r1791 r2201 7 7 # Check your compilers option in consequence when using real F95 compilers 8 8 9 F_O += -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) 10 L_X = $(L_O) 9 11 #-Q- platine # Compiler options NEMO (CCRT Itanium Bull) 10 12 #-Q- platine F_O = -O3 -i4 -r8 -module $(MODDIR)/oce -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) … … 101 103 102 104 #check key compatibility 103 keycompat=$(if $( and $(findstring $1,$(P_P)),$(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible))105 keycompat=$(if $(word 2, $(findstring $1,$(P_P)) $(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible)) 104 106 105 107 KEY_LIST = \ … … 298 300 $(MODEL_LIB)(trcrad.o)\ 299 301 $(MODEL_LIB)(trcrst.o)\ 302 $(MODEL_LIB)(trcrst_c14b.o)\ 303 $(MODEL_LIB)(trcrst_cfc.o)\ 304 $(MODEL_LIB)(trcrst_lobster.o)\ 305 $(MODEL_LIB)(trcrst_my_trc.o)\ 306 $(MODEL_LIB)(trcrst_pisces.o)\ 300 307 $(MODEL_LIB)(trcsbc.o)\ 301 308 $(MODEL_LIB)(trcsed.o)\ … … 364 371 365 372 # Agrif library and conv 366 libagrif : $(call keycompat,key_iomput,key_agrif)373 libagrif : 367 374 ifeq ($(AGRIF),use) 368 375 @( if [ ! -d OPAFILES ]; then mkdir OPAFILES; fi ) … … 1507 1514 trc.F90 \ 1508 1515 domzgr_substitute.h90 \ 1516 ldfeiv_substitute.h90 \ 1517 ldftra_substitute.h90 \ 1518 top_substitute.h90 \ 1519 vectopt_loop_substitute.h90 \ 1509 1520 KEY_CPP \ 1510 1521 p4zbio.F90 … … 1549 1560 trc.F90 \ 1550 1561 domzgr_substitute.h90 \ 1562 ldfeiv_substitute.h90 \ 1563 ldftra_substitute.h90 \ 1564 top_substitute.h90 \ 1565 vectopt_loop_substitute.h90 \ 1551 1566 KEY_CPP \ 1552 1567 p4zche.F90 … … 1621 1636 trc.F90 \ 1622 1637 domzgr_substitute.h90 \ 1638 ldfeiv_substitute.h90 \ 1639 ldftra_substitute.h90 \ 1640 top_substitute.h90 \ 1641 vectopt_loop_substitute.h90 \ 1623 1642 KEY_CPP \ 1624 1643 p4zflx.F90 … … 1704 1723 trc.F90 \ 1705 1724 domzgr_substitute.h90 \ 1725 ldfeiv_substitute.h90 \ 1726 ldftra_substitute.h90 \ 1727 top_substitute.h90 \ 1728 vectopt_loop_substitute.h90 \ 1706 1729 KEY_CPP \ 1707 1730 p4zlim.F90 … … 1839 1862 trc.F90 \ 1840 1863 domzgr_substitute.h90 \ 1864 ldfeiv_substitute.h90 \ 1865 ldftra_substitute.h90 \ 1866 top_substitute.h90 \ 1867 vectopt_loop_substitute.h90 \ 1841 1868 KEY_CPP \ 1842 1869 p4zmeso.F90 … … 1913 1940 trc.F90 \ 1914 1941 domzgr_substitute.h90 \ 1942 ldfeiv_substitute.h90 \ 1943 ldftra_substitute.h90 \ 1944 top_substitute.h90 \ 1945 vectopt_loop_substitute.h90 \ 1915 1946 KEY_CPP \ 1916 1947 p4zmicro.F90 … … 1969 2000 trc.F90 \ 1970 2001 domzgr_substitute.h90 \ 2002 ldfeiv_substitute.h90 \ 2003 ldftra_substitute.h90 \ 2004 top_substitute.h90 \ 2005 vectopt_loop_substitute.h90 \ 1971 2006 KEY_CPP \ 1972 2007 p4zmort.F90 … … 2029 2064 trc_oce.F90 \ 2030 2065 domzgr_substitute.h90 \ 2066 ldfeiv_substitute.h90 \ 2067 ldftra_substitute.h90 \ 2068 top_substitute.h90 \ 2069 vectopt_loop_substitute.h90 \ 2031 2070 KEY_CPP \ 2032 2071 p4zopt.F90 … … 2107 2146 trc.F90 \ 2108 2147 domzgr_substitute.h90 \ 2148 ldfeiv_substitute.h90 \ 2149 ldftra_substitute.h90 \ 2150 top_substitute.h90 \ 2151 vectopt_loop_substitute.h90 \ 2109 2152 KEY_CPP \ 2110 2153 p4zprod.F90 … … 2181 2224 trc.F90 \ 2182 2225 domzgr_substitute.h90 \ 2226 ldfeiv_substitute.h90 \ 2227 ldftra_substitute.h90 \ 2228 top_substitute.h90 \ 2229 vectopt_loop_substitute.h90 \ 2183 2230 KEY_CPP \ 2184 2231 p4zrem.F90 … … 2355 2402 trc.F90 \ 2356 2403 domzgr_substitute.h90 \ 2404 ldfeiv_substitute.h90 \ 2405 ldftra_substitute.h90 \ 2406 top_substitute.h90 \ 2407 vectopt_loop_substitute.h90 \ 2357 2408 KEY_CPP \ 2358 2409 p4zsink.F90 … … 3097 3148 sol_oce.F90 3098 3149 $(MODEL_LIB)(step.o) : \ 3150 $(MODEL_LIB)(daymod.o) \ 3099 3151 $(MODEL_LIB)(dianam.o) \ 3100 3152 $(MODEL_LIB)(dom_oce.o) \ … … 3117 3169 $(MODEL_LIB)(par_kind.o) \ 3118 3170 $(MODEL_LIB)(par_oce.o) \ 3171 $(MODEL_LIB)(par_trc.o) \ 3119 3172 $(MODEL_LIB)(phycst.o) \ 3120 3173 $(MODEL_LIB)(prtctl.o) \ 3121 3174 $(MODEL_LIB)(prtctl_trc.o) \ 3122 3175 $(MODEL_LIB)(sbc_oce.o) \ 3123 $(MODEL_LIB)(sms_lobster.o) \3124 $(MODEL_LIB)(sms_pisces.o) \3125 3176 $(MODEL_LIB)(trabbl.o) \ 3126 3177 $(MODEL_LIB)(trc.o) \ 3127 3178 $(MODEL_LIB)(trcdia.o) \ 3128 3179 $(MODEL_LIB)(trcrst.o) \ 3180 $(MODEL_LIB)(trcrst_c14b.o) \ 3181 $(MODEL_LIB)(trcrst_cfc.o) \ 3182 $(MODEL_LIB)(trcrst_lobster.o) \ 3183 $(MODEL_LIB)(trcrst_my_trc.o) \ 3184 $(MODEL_LIB)(trcrst_pisces.o) \ 3129 3185 $(MODEL_LIB)(trcsms.o) \ 3130 $(MODEL_LIB)(trcsms_c14b.o) \3131 $(MODEL_LIB)(trcsms_cfc.o) \3132 $(MODEL_LIB)(trcsms_my_trc.o) \3133 3186 $(MODEL_LIB)(trctrp.o) \ 3134 3187 $(MODEL_LIB)(trctrp_lec.o) \ … … 3141 3194 $(MODEL_LIB)(zdfmxl.o) \ 3142 3195 $(MODEL_LIB)(zpshde.o) \ 3196 daymod.F90 \ 3143 3197 dianam.F90 \ 3144 3198 dom_oce.F90 \ … … 3161 3215 par_kind.F90 \ 3162 3216 par_oce.F90 \ 3217 par_trc.F90 \ 3163 3218 phycst.F90 \ 3164 3219 prtctl.F90 \ 3165 3220 prtctl_trc.F90 \ 3166 3221 sbc_oce.F90 \ 3167 sms_lobster.F90 \3168 sms_pisces.F90 \3169 3222 trabbl.F90 \ 3170 3223 trc.F90 \ 3171 3224 trcdia.F90 \ 3172 3225 trcrst.F90 \ 3226 trcrst_c14b.F90 \ 3227 trcrst_cfc.F90 \ 3228 trcrst_lobster.F90 \ 3229 trcrst_my_trc.F90 \ 3230 trcrst_pisces.F90 \ 3173 3231 trcsms.F90 \ 3174 trcsms_c14b.F90 \3175 trcsms_cfc.F90 \3176 trcsms_my_trc.F90 \3177 3232 trctrp.F90 \ 3178 3233 trctrp_lec.F90 \ … … 4231 4286 $(MODEL_LIB)(lib_print.o) \ 4232 4287 $(MODEL_LIB)(oce.o) \ 4288 $(MODEL_LIB)(par_c14b.o) \ 4289 $(MODEL_LIB)(par_cfc.o) \ 4233 4290 $(MODEL_LIB)(par_kind.o) \ 4234 $(MODEL_LIB)(par_oce.o) \ 4291 $(MODEL_LIB)(par_lobster.o) \ 4292 $(MODEL_LIB)(par_my_trc.o) \ 4293 $(MODEL_LIB)(par_oce.o) \ 4294 $(MODEL_LIB)(par_pisces.o) \ 4235 4295 $(MODEL_LIB)(par_trc.o) \ 4236 4296 $(MODEL_LIB)(phycst.o) \ … … 4250 4310 lib_print.f90 \ 4251 4311 oce.F90 \ 4312 par_c14b.F90 \ 4313 par_cfc.F90 \ 4252 4314 par_kind.F90 \ 4253 par_oce.F90 \ 4315 par_lobster.F90 \ 4316 par_my_trc.F90 \ 4317 par_oce.F90 \ 4318 par_pisces.F90 \ 4254 4319 par_trc.F90 \ 4255 4320 phycst.F90 \ … … 4267 4332 $(MODEL_LIB)(lib_mpp.o) \ 4268 4333 $(MODEL_LIB)(oce_trc.o) \ 4334 $(MODEL_LIB)(par_trc.o) \ 4269 4335 $(MODEL_LIB)(trc.o) \ 4270 4336 $(MODEL_LIB)(trdmld_trc_oce.o) \ … … 4275 4341 lib_mpp.F90 \ 4276 4342 oce_trc.F90 \ 4343 par_trc.F90 \ 4277 4344 trc.F90 \ 4278 4345 trdmld_trc_oce.F90 \ … … 4548 4615 trcexp.F90 4549 4616 $(MODEL_LIB)(trcini.o) : \ 4617 $(MODEL_LIB)(daymod.o) \ 4550 4618 $(MODEL_LIB)(dom_oce.o) \ 4551 4619 $(MODEL_LIB)(in_out_manager.o) \ … … 4581 4649 $(MODEL_LIB)(trclsm_my_trc.o) \ 4582 4650 $(MODEL_LIB)(trclsm_pisces.o) \ 4651 $(MODEL_LIB)(trcrst_c14b.o) \ 4652 $(MODEL_LIB)(trcrst_cfc.o) \ 4653 $(MODEL_LIB)(trcrst_lobster.o) \ 4654 $(MODEL_LIB)(trcrst_my_trc.o) \ 4655 $(MODEL_LIB)(trcrst_pisces.o) \ 4583 4656 $(MODEL_LIB)(trcsms_c14b.o) \ 4584 4657 $(MODEL_LIB)(trcsms_cfc.o) \ 4585 $(MODEL_LIB)(trcsms_my_trc.o) \4586 4658 $(MODEL_LIB)(trctrp_ctl.o) \ 4587 4659 $(MODEL_LIB)(trctrp_lec.o) \ … … 4591 4663 $(MODEL_LIB)(zdfddm.o) \ 4592 4664 $(MODEL_LIB)(zdfmxl.o) \ 4665 daymod.F90 \ 4593 4666 dom_oce.F90 \ 4594 4667 in_out_manager.F90 \ … … 4624 4697 trclsm_my_trc.F90 \ 4625 4698 trclsm_pisces.F90 \ 4699 trcrst_c14b.F90 \ 4700 trcrst_cfc.F90 \ 4701 trcrst_lobster.F90 \ 4702 trcrst_my_trc.F90 \ 4703 trcrst_pisces.F90 \ 4626 4704 trcsms_c14b.F90 \ 4627 4705 trcsms_cfc.F90 \ 4628 trcsms_my_trc.F90 \4629 4706 trctrp_ctl.F90 \ 4630 4707 trctrp_lec.F90 \ … … 5869 5946 trc.F90 \ 5870 5947 domzgr_substitute.h90 \ 5948 ldfeiv_substitute.h90 \ 5949 ldftra_substitute.h90 \ 5950 top_substitute.h90 \ 5951 vectopt_loop_substitute.h90 \ 5871 5952 KEY_CPP \ 5872 5953 trcopt.F90 … … 5964 6045 $(MODEL_LIB)(par_trc.o) \ 5965 6046 $(MODEL_LIB)(phycst.o) \ 6047 $(MODEL_LIB)(prtctl.o) \ 5966 6048 $(MODEL_LIB)(sbc_oce.o) \ 5967 6049 $(MODEL_LIB)(sbcrnf.o) \ 6050 $(MODEL_LIB)(sms_lobster.o) \ 6051 $(MODEL_LIB)(sms_pisces.o) \ 5968 6052 $(MODEL_LIB)(trabbl.o) \ 5969 6053 $(MODEL_LIB)(traqsr.o) \ 5970 6054 $(MODEL_LIB)(trc.o) \ 5971 $(MODEL_LIB)(trdmld_trc.o) \ 5972 $(MODEL_LIB)(trdmld_trc_oce.o) \ 6055 $(MODEL_LIB)(trcdta.o) \ 6056 $(MODEL_LIB)(trcsms_c14b.o) \ 6057 $(MODEL_LIB)(trcsms_cfc.o) \ 6058 $(MODEL_LIB)(trcsms_lobster.o) \ 6059 $(MODEL_LIB)(trcsms_pisces.o) \ 5973 6060 $(MODEL_LIB)(trp_trc.o) \ 5974 6061 $(MODEL_LIB)(zdf_oce.o) \ … … 5993 6080 par_trc.F90 \ 5994 6081 phycst.F90 \ 6082 prtctl.F90 \ 5995 6083 sbc_oce.F90 \ 5996 6084 sbcrnf.F90 \ 6085 sms_lobster.F90 \ 6086 sms_pisces.F90 \ 5997 6087 trabbl.F90 \ 5998 6088 traqsr.F90 \ 5999 6089 trc.F90 \ 6000 trdmld_trc.F90 \ 6001 trdmld_trc_oce.F90 \ 6002 trp_trc.F90 \ 6003 zdf_oce.F90 \ 6004 zdfddm.F90 \ 6005 zdfmxl.F90 \ 6006 $(MODEL_LIB)(iom.o) \ 6007 $(MODEL_LIB)(lib_mpp.o) \ 6008 $(MODEL_LIB)(oce_trc.o) \ 6009 $(MODEL_LIB)(sms_lobster.o) \ 6010 $(MODEL_LIB)(sms_pisces.o) \ 6011 $(MODEL_LIB)(trc.o) \ 6012 $(MODEL_LIB)(trcsms_c14b.o) \ 6013 $(MODEL_LIB)(trcsms_cfc.o) \ 6014 $(MODEL_LIB)(trcsms_my_trc.o) \ 6015 $(MODEL_LIB)(trctrp_lec.o) \ 6016 iom.F90 \ 6017 lib_mpp.F90 \ 6018 oce_trc.F90 \ 6019 sms_lobster.F90 \ 6020 sms_pisces.F90 \ 6021 trc.F90 \ 6090 trcdta.F90 \ 6022 6091 trcsms_c14b.F90 \ 6023 6092 trcsms_cfc.F90 \ 6024 trcsms_my_trc.F90 \ 6093 trcsms_lobster.F90 \ 6094 trcsms_pisces.F90 \ 6095 trp_trc.F90 \ 6096 zdf_oce.F90 \ 6097 zdfddm.F90 \ 6098 zdfmxl.F90 \ 6099 $(MODEL_LIB)(daymod.o) \ 6100 $(MODEL_LIB)(iom.o) \ 6101 $(MODEL_LIB)(lib_mpp.o) \ 6102 $(MODEL_LIB)(oce_trc.o) \ 6103 $(MODEL_LIB)(trc.o) \ 6104 $(MODEL_LIB)(trcrst_c14b.o) \ 6105 $(MODEL_LIB)(trcrst_cfc.o) \ 6106 $(MODEL_LIB)(trcrst_lobster.o) \ 6107 $(MODEL_LIB)(trcrst_my_trc.o) \ 6108 $(MODEL_LIB)(trcrst_pisces.o) \ 6109 $(MODEL_LIB)(trctrp_lec.o) \ 6110 daymod.F90 \ 6111 iom.F90 \ 6112 lib_mpp.F90 \ 6113 oce_trc.F90 \ 6114 trc.F90 \ 6115 trcrst_c14b.F90 \ 6116 trcrst_cfc.F90 \ 6117 trcrst_lobster.F90 \ 6118 trcrst_my_trc.F90 \ 6119 trcrst_pisces.F90 \ 6025 6120 trctrp_lec.F90 \ 6026 6121 domzgr_substitute.h90 \ … … 6031 6126 KEY_CPP \ 6032 6127 trcrst.F90 6128 $(MODEL_LIB)(trcrst_c14b.o) : \ 6129 $(MODEL_LIB)(dianam.o) \ 6130 $(MODEL_LIB)(dom_oce.o) \ 6131 $(MODEL_LIB)(domngb.o) \ 6132 $(MODEL_LIB)(in_out_manager.o) \ 6133 $(MODEL_LIB)(iom.o) \ 6134 $(MODEL_LIB)(iom_def.o) \ 6135 $(MODEL_LIB)(iom_ioipsl.o) \ 6136 $(MODEL_LIB)(iom_nf90.o) \ 6137 $(MODEL_LIB)(iom_rstdimg.o) \ 6138 $(MODEL_LIB)(lbclnk.o) \ 6139 $(MODEL_LIB)(ldfslp.o) \ 6140 $(MODEL_LIB)(ldftra_oce.o) \ 6141 $(MODEL_LIB)(lib_mpp.o) \ 6142 $(MODEL_LIB)(lib_print.o) \ 6143 $(MODEL_LIB)(oce.o) \ 6144 $(MODEL_LIB)(oce_trc.o) \ 6145 $(MODEL_LIB)(par_c14b.o) \ 6146 $(MODEL_LIB)(par_cfc.o) \ 6147 $(MODEL_LIB)(par_kind.o) \ 6148 $(MODEL_LIB)(par_lobster.o) \ 6149 $(MODEL_LIB)(par_my_trc.o) \ 6150 $(MODEL_LIB)(par_oce.o) \ 6151 $(MODEL_LIB)(par_pisces.o) \ 6152 $(MODEL_LIB)(par_trc.o) \ 6153 $(MODEL_LIB)(phycst.o) \ 6154 $(MODEL_LIB)(sbc_oce.o) \ 6155 $(MODEL_LIB)(sbcrnf.o) \ 6156 $(MODEL_LIB)(trabbl.o) \ 6157 $(MODEL_LIB)(traqsr.o) \ 6158 $(MODEL_LIB)(trc.o) \ 6159 $(MODEL_LIB)(trdmld_trc.o) \ 6160 $(MODEL_LIB)(trdmld_trc_oce.o) \ 6161 $(MODEL_LIB)(zdf_oce.o) \ 6162 $(MODEL_LIB)(zdfddm.o) \ 6163 $(MODEL_LIB)(zdfmxl.o) \ 6164 dianam.F90 \ 6165 dom_oce.F90 \ 6166 domngb.F90 \ 6167 in_out_manager.F90 \ 6168 iom.F90 \ 6169 iom_def.F90 \ 6170 iom_ioipsl.F90 \ 6171 iom_nf90.F90 \ 6172 iom_rstdimg.F90 \ 6173 lbclnk.F90 \ 6174 ldfslp.F90 \ 6175 ldftra_oce.F90 \ 6176 lib_mpp.F90 \ 6177 lib_print.f90 \ 6178 oce.F90 \ 6179 oce_trc.F90 \ 6180 par_c14b.F90 \ 6181 par_cfc.F90 \ 6182 par_kind.F90 \ 6183 par_lobster.F90 \ 6184 par_my_trc.F90 \ 6185 par_oce.F90 \ 6186 par_pisces.F90 \ 6187 par_trc.F90 \ 6188 phycst.F90 \ 6189 sbc_oce.F90 \ 6190 sbcrnf.F90 \ 6191 trabbl.F90 \ 6192 traqsr.F90 \ 6193 trc.F90 \ 6194 trdmld_trc.F90 \ 6195 trdmld_trc_oce.F90 \ 6196 zdf_oce.F90 \ 6197 zdfddm.F90 \ 6198 zdfmxl.F90 \ 6199 $(MODEL_LIB)(in_out_manager.o) \ 6200 $(MODEL_LIB)(iom.o) \ 6201 $(MODEL_LIB)(oce_trc.o) \ 6202 $(MODEL_LIB)(par_trc.o) \ 6203 $(MODEL_LIB)(trc.o) \ 6204 $(MODEL_LIB)(trcsms_c14b.o) \ 6205 in_out_manager.F90 \ 6206 iom.F90 \ 6207 oce_trc.F90 \ 6208 par_trc.F90 \ 6209 trc.F90 \ 6210 trcsms_c14b.F90 \ 6211 KEY_CPP \ 6212 trcrst_c14b.F90 6213 $(MODEL_LIB)(trcrst_cfc.o) : \ 6214 $(MODEL_LIB)(dianam.o) \ 6215 $(MODEL_LIB)(dom_oce.o) \ 6216 $(MODEL_LIB)(domngb.o) \ 6217 $(MODEL_LIB)(in_out_manager.o) \ 6218 $(MODEL_LIB)(iom.o) \ 6219 $(MODEL_LIB)(iom_def.o) \ 6220 $(MODEL_LIB)(iom_ioipsl.o) \ 6221 $(MODEL_LIB)(iom_nf90.o) \ 6222 $(MODEL_LIB)(iom_rstdimg.o) \ 6223 $(MODEL_LIB)(lbclnk.o) \ 6224 $(MODEL_LIB)(ldfslp.o) \ 6225 $(MODEL_LIB)(ldftra_oce.o) \ 6226 $(MODEL_LIB)(lib_mpp.o) \ 6227 $(MODEL_LIB)(lib_print.o) \ 6228 $(MODEL_LIB)(oce.o) \ 6229 $(MODEL_LIB)(oce_trc.o) \ 6230 $(MODEL_LIB)(par_c14b.o) \ 6231 $(MODEL_LIB)(par_cfc.o) \ 6232 $(MODEL_LIB)(par_kind.o) \ 6233 $(MODEL_LIB)(par_lobster.o) \ 6234 $(MODEL_LIB)(par_my_trc.o) \ 6235 $(MODEL_LIB)(par_oce.o) \ 6236 $(MODEL_LIB)(par_pisces.o) \ 6237 $(MODEL_LIB)(par_trc.o) \ 6238 $(MODEL_LIB)(phycst.o) \ 6239 $(MODEL_LIB)(sbc_oce.o) \ 6240 $(MODEL_LIB)(sbcrnf.o) \ 6241 $(MODEL_LIB)(trabbl.o) \ 6242 $(MODEL_LIB)(traqsr.o) \ 6243 $(MODEL_LIB)(trc.o) \ 6244 $(MODEL_LIB)(trdmld_trc.o) \ 6245 $(MODEL_LIB)(trdmld_trc_oce.o) \ 6246 $(MODEL_LIB)(zdf_oce.o) \ 6247 $(MODEL_LIB)(zdfddm.o) \ 6248 $(MODEL_LIB)(zdfmxl.o) \ 6249 dianam.F90 \ 6250 dom_oce.F90 \ 6251 domngb.F90 \ 6252 in_out_manager.F90 \ 6253 iom.F90 \ 6254 iom_def.F90 \ 6255 iom_ioipsl.F90 \ 6256 iom_nf90.F90 \ 6257 iom_rstdimg.F90 \ 6258 lbclnk.F90 \ 6259 ldfslp.F90 \ 6260 ldftra_oce.F90 \ 6261 lib_mpp.F90 \ 6262 lib_print.f90 \ 6263 oce.F90 \ 6264 oce_trc.F90 \ 6265 par_c14b.F90 \ 6266 par_cfc.F90 \ 6267 par_kind.F90 \ 6268 par_lobster.F90 \ 6269 par_my_trc.F90 \ 6270 par_oce.F90 \ 6271 par_pisces.F90 \ 6272 par_trc.F90 \ 6273 phycst.F90 \ 6274 sbc_oce.F90 \ 6275 sbcrnf.F90 \ 6276 trabbl.F90 \ 6277 traqsr.F90 \ 6278 trc.F90 \ 6279 trdmld_trc.F90 \ 6280 trdmld_trc_oce.F90 \ 6281 zdf_oce.F90 \ 6282 zdfddm.F90 \ 6283 zdfmxl.F90 \ 6284 $(MODEL_LIB)(in_out_manager.o) \ 6285 $(MODEL_LIB)(iom.o) \ 6286 $(MODEL_LIB)(oce_trc.o) \ 6287 $(MODEL_LIB)(par_trc.o) \ 6288 $(MODEL_LIB)(trc.o) \ 6289 $(MODEL_LIB)(trcsms_cfc.o) \ 6290 in_out_manager.F90 \ 6291 iom.F90 \ 6292 oce_trc.F90 \ 6293 par_trc.F90 \ 6294 trc.F90 \ 6295 trcsms_cfc.F90 \ 6296 KEY_CPP \ 6297 trcrst_cfc.F90 6298 $(MODEL_LIB)(trcrst_lobster.o) : \ 6299 $(MODEL_LIB)(dianam.o) \ 6300 $(MODEL_LIB)(dom_oce.o) \ 6301 $(MODEL_LIB)(domngb.o) \ 6302 $(MODEL_LIB)(in_out_manager.o) \ 6303 $(MODEL_LIB)(iom_def.o) \ 6304 $(MODEL_LIB)(iom_ioipsl.o) \ 6305 $(MODEL_LIB)(iom_nf90.o) \ 6306 $(MODEL_LIB)(iom_rstdimg.o) \ 6307 $(MODEL_LIB)(lbclnk.o) \ 6308 $(MODEL_LIB)(ldfslp.o) \ 6309 $(MODEL_LIB)(ldftra_oce.o) \ 6310 $(MODEL_LIB)(lib_mpp.o) \ 6311 $(MODEL_LIB)(lib_print.o) \ 6312 $(MODEL_LIB)(oce.o) \ 6313 $(MODEL_LIB)(oce_trc.o) \ 6314 $(MODEL_LIB)(par_c14b.o) \ 6315 $(MODEL_LIB)(par_cfc.o) \ 6316 $(MODEL_LIB)(par_kind.o) \ 6317 $(MODEL_LIB)(par_lobster.o) \ 6318 $(MODEL_LIB)(par_my_trc.o) \ 6319 $(MODEL_LIB)(par_oce.o) \ 6320 $(MODEL_LIB)(par_pisces.o) \ 6321 $(MODEL_LIB)(par_trc.o) \ 6322 $(MODEL_LIB)(phycst.o) \ 6323 $(MODEL_LIB)(sbc_oce.o) \ 6324 $(MODEL_LIB)(sbcrnf.o) \ 6325 $(MODEL_LIB)(trabbl.o) \ 6326 $(MODEL_LIB)(traqsr.o) \ 6327 $(MODEL_LIB)(trc.o) \ 6328 $(MODEL_LIB)(trcbio.o) \ 6329 $(MODEL_LIB)(trcexp.o) \ 6330 $(MODEL_LIB)(trcopt.o) \ 6331 $(MODEL_LIB)(trcsed.o) \ 6332 $(MODEL_LIB)(trdmld_trc.o) \ 6333 $(MODEL_LIB)(trdmld_trc_oce.o) \ 6334 $(MODEL_LIB)(zdf_oce.o) \ 6335 $(MODEL_LIB)(zdfddm.o) \ 6336 $(MODEL_LIB)(zdfmxl.o) \ 6337 dianam.F90 \ 6338 dom_oce.F90 \ 6339 domngb.F90 \ 6340 in_out_manager.F90 \ 6341 iom_def.F90 \ 6342 iom_ioipsl.F90 \ 6343 iom_nf90.F90 \ 6344 iom_rstdimg.F90 \ 6345 lbclnk.F90 \ 6346 ldfslp.F90 \ 6347 ldftra_oce.F90 \ 6348 lib_mpp.F90 \ 6349 lib_print.f90 \ 6350 oce.F90 \ 6351 oce_trc.F90 \ 6352 par_c14b.F90 \ 6353 par_cfc.F90 \ 6354 par_kind.F90 \ 6355 par_lobster.F90 \ 6356 par_my_trc.F90 \ 6357 par_oce.F90 \ 6358 par_pisces.F90 \ 6359 par_trc.F90 \ 6360 phycst.F90 \ 6361 sbc_oce.F90 \ 6362 sbcrnf.F90 \ 6363 trabbl.F90 \ 6364 traqsr.F90 \ 6365 trc.F90 \ 6366 trcbio.F90 \ 6367 trcexp.F90 \ 6368 trcopt.F90 \ 6369 trcsed.F90 \ 6370 trdmld_trc.F90 \ 6371 trdmld_trc_oce.F90 \ 6372 zdf_oce.F90 \ 6373 zdfddm.F90 \ 6374 zdfmxl.F90 \ 6375 $(MODEL_LIB)(in_out_manager.o) \ 6376 $(MODEL_LIB)(iom.o) \ 6377 $(MODEL_LIB)(oce_trc.o) \ 6378 $(MODEL_LIB)(par_trc.o) \ 6379 $(MODEL_LIB)(sms_lobster.o) \ 6380 $(MODEL_LIB)(trc.o) \ 6381 $(MODEL_LIB)(trcsms_lobster.o) \ 6382 in_out_manager.F90 \ 6383 iom.F90 \ 6384 oce_trc.F90 \ 6385 par_trc.F90 \ 6386 sms_lobster.F90 \ 6387 trc.F90 \ 6388 trcsms_lobster.F90 \ 6389 KEY_CPP \ 6390 trcrst_lobster.F90 6391 $(MODEL_LIB)(trcrst_my_trc.o) : \ 6392 KEY_CPP \ 6393 trcrst_my_trc.F90 6394 $(MODEL_LIB)(trcrst_pisces.o) : \ 6395 $(MODEL_LIB)(dianam.o) \ 6396 $(MODEL_LIB)(dom_oce.o) \ 6397 $(MODEL_LIB)(domngb.o) \ 6398 $(MODEL_LIB)(in_out_manager.o) \ 6399 $(MODEL_LIB)(iom.o) \ 6400 $(MODEL_LIB)(iom_def.o) \ 6401 $(MODEL_LIB)(iom_ioipsl.o) \ 6402 $(MODEL_LIB)(iom_nf90.o) \ 6403 $(MODEL_LIB)(iom_rstdimg.o) \ 6404 $(MODEL_LIB)(lbclnk.o) \ 6405 $(MODEL_LIB)(ldfslp.o) \ 6406 $(MODEL_LIB)(ldftra_oce.o) \ 6407 $(MODEL_LIB)(lib_mpp.o) \ 6408 $(MODEL_LIB)(lib_print.o) \ 6409 $(MODEL_LIB)(oce.o) \ 6410 $(MODEL_LIB)(oce_trc.o) \ 6411 $(MODEL_LIB)(p4zbio.o) \ 6412 $(MODEL_LIB)(p4zche.o) \ 6413 $(MODEL_LIB)(p4zflx.o) \ 6414 $(MODEL_LIB)(p4zint.o) \ 6415 $(MODEL_LIB)(p4zlys.o) \ 6416 $(MODEL_LIB)(p4zsed.o) \ 6417 $(MODEL_LIB)(par_c14b.o) \ 6418 $(MODEL_LIB)(par_cfc.o) \ 6419 $(MODEL_LIB)(par_kind.o) \ 6420 $(MODEL_LIB)(par_lobster.o) \ 6421 $(MODEL_LIB)(par_my_trc.o) \ 6422 $(MODEL_LIB)(par_oce.o) \ 6423 $(MODEL_LIB)(par_pisces.o) \ 6424 $(MODEL_LIB)(par_trc.o) \ 6425 $(MODEL_LIB)(phycst.o) \ 6426 $(MODEL_LIB)(sbc_oce.o) \ 6427 $(MODEL_LIB)(sbcrnf.o) \ 6428 $(MODEL_LIB)(sedmodel.o) \ 6429 $(MODEL_LIB)(sms_pisces.o) \ 6430 $(MODEL_LIB)(trabbl.o) \ 6431 $(MODEL_LIB)(traqsr.o) \ 6432 $(MODEL_LIB)(trc.o) \ 6433 $(MODEL_LIB)(trdmld_trc.o) \ 6434 $(MODEL_LIB)(trdmld_trc_oce.o) \ 6435 $(MODEL_LIB)(zdf_oce.o) \ 6436 $(MODEL_LIB)(zdfddm.o) \ 6437 $(MODEL_LIB)(zdfmxl.o) \ 6438 dianam.F90 \ 6439 dom_oce.F90 \ 6440 domngb.F90 \ 6441 in_out_manager.F90 \ 6442 iom.F90 \ 6443 iom_def.F90 \ 6444 iom_ioipsl.F90 \ 6445 iom_nf90.F90 \ 6446 iom_rstdimg.F90 \ 6447 lbclnk.F90 \ 6448 ldfslp.F90 \ 6449 ldftra_oce.F90 \ 6450 lib_mpp.F90 \ 6451 lib_print.f90 \ 6452 oce.F90 \ 6453 oce_trc.F90 \ 6454 p4zbio.F90 \ 6455 p4zche.F90 \ 6456 p4zflx.F90 \ 6457 p4zint.F90 \ 6458 p4zlys.F90 \ 6459 p4zsed.F90 \ 6460 par_c14b.F90 \ 6461 par_cfc.F90 \ 6462 par_kind.F90 \ 6463 par_lobster.F90 \ 6464 par_my_trc.F90 \ 6465 par_oce.F90 \ 6466 par_pisces.F90 \ 6467 par_trc.F90 \ 6468 phycst.F90 \ 6469 sbc_oce.F90 \ 6470 sbcrnf.F90 \ 6471 sedmodel.F90 \ 6472 sms_pisces.F90 \ 6473 trabbl.F90 \ 6474 traqsr.F90 \ 6475 trc.F90 \ 6476 trdmld_trc.F90 \ 6477 trdmld_trc_oce.F90 \ 6478 zdf_oce.F90 \ 6479 zdfddm.F90 \ 6480 zdfmxl.F90 \ 6481 $(MODEL_LIB)(in_out_manager.o) \ 6482 $(MODEL_LIB)(iom.o) \ 6483 $(MODEL_LIB)(oce_trc.o) \ 6484 $(MODEL_LIB)(par_trc.o) \ 6485 $(MODEL_LIB)(sms_pisces.o) \ 6486 $(MODEL_LIB)(trc.o) \ 6487 $(MODEL_LIB)(trcdta.o) \ 6488 $(MODEL_LIB)(trcsms_pisces.o) \ 6489 in_out_manager.F90 \ 6490 iom.F90 \ 6491 oce_trc.F90 \ 6492 par_trc.F90 \ 6493 sms_pisces.F90 \ 6494 trc.F90 \ 6495 trcdta.F90 \ 6496 trcsms_pisces.F90 \ 6497 KEY_CPP \ 6498 trcrst_pisces.F90 6033 6499 $(MODEL_LIB)(trcsbc.o) : \ 6034 6500 $(MODEL_LIB)(dianam.o) \ … … 6185 6651 trdmld_trc_oce.F90 \ 6186 6652 domzgr_substitute.h90 \ 6653 ldfeiv_substitute.h90 \ 6654 ldftra_substitute.h90 \ 6655 top_substitute.h90 \ 6656 vectopt_loop_substitute.h90 \ 6187 6657 KEY_CPP \ 6188 6658 trcsed.F90 … … 6743 7213 $(MODEL_LIB)(trcstp.o) : \ 6744 7214 $(MODEL_LIB)(agrif_top_sponge.o) \ 7215 $(MODEL_LIB)(daymod.o) \ 6745 7216 $(MODEL_LIB)(dianam.o) \ 6746 7217 $(MODEL_LIB)(dom_oce.o) \ … … 6786 7257 $(MODEL_LIB)(trcnxt.o) \ 6787 7258 $(MODEL_LIB)(trcrad.o) \ 7259 $(MODEL_LIB)(trcrst_c14b.o) \ 7260 $(MODEL_LIB)(trcrst_cfc.o) \ 7261 $(MODEL_LIB)(trcrst_lobster.o) \ 7262 $(MODEL_LIB)(trcrst_my_trc.o) \ 7263 $(MODEL_LIB)(trcrst_pisces.o) \ 6788 7264 $(MODEL_LIB)(trcsbc.o) \ 6789 7265 $(MODEL_LIB)(trcsms_c14b.o) \ … … 6805 7281 $(MODEL_LIB)(zpshde_trc.o) \ 6806 7282 agrif_top_sponge.F90 \ 7283 daymod.F90 \ 6807 7284 dianam.F90 \ 6808 7285 dom_oce.F90 \ … … 6848 7325 trcnxt.F90 \ 6849 7326 trcrad.F90 \ 7327 trcrst_c14b.F90 \ 7328 trcrst_cfc.F90 \ 7329 trcrst_lobster.F90 \ 7330 trcrst_my_trc.F90 \ 7331 trcrst_pisces.F90 \ 6850 7332 trcsbc.F90 \ 6851 7333 trcsms_c14b.F90 \ … … 7006 7488 zpshde_trc.F90 \ 7007 7489 domzgr_substitute.h90 \ 7490 ldfeiv_substitute.h90 \ 7491 ldftra_substitute.h90 \ 7492 top_substitute.h90 \ 7493 vectopt_loop_substitute.h90 \ 7008 7494 $(AGRIF_LIB) \ 7009 7495 KEY_CPP \ … … 7118 7604 $(MODEL_LIB)(trabbl.o) \ 7119 7605 $(MODEL_LIB)(traqsr.o) \ 7606 $(MODEL_LIB)(trc.o) \ 7120 7607 $(MODEL_LIB)(zdf_oce.o) \ 7121 7608 $(MODEL_LIB)(zdfddm.o) \ … … 7141 7628 trabbl.F90 \ 7142 7629 traqsr.F90 \ 7630 trc.F90 \ 7143 7631 zdf_oce.F90 \ 7144 7632 zdfddm.F90 \ 7145 7633 zdfmxl.F90 \ 7146 7634 $(MODEL_LIB)(dianam.o) \ 7635 $(MODEL_LIB)(dom_oce.o) \ 7147 7636 $(MODEL_LIB)(iom.o) \ 7148 7637 $(MODEL_LIB)(oce_trc.o) \ 7149 7638 $(MODEL_LIB)(trc.o) \ 7639 $(MODEL_LIB)(trdmld_trc_oce.o) \ 7640 $(MODEL_LIB)(trp_trc.o) \ 7150 7641 dianam.F90 \ 7642 dom_oce.F90 \ 7151 7643 iom.F90 \ 7152 7644 oce_trc.F90 \ 7153 7645 trc.F90 \ 7646 trdmld_trc_oce.F90 \ 7647 trp_trc.F90 \ 7154 7648 domzgr_substitute.h90 \ 7155 7649 ldfeiv_substitute.h90 \ -
branches/DEV_r1924_nocs_latphys/CONFIG/ORCA2_OFF_PISCES/scripts/BB_make.ldef
r1791 r2201 34 34 #- 35 35 #- Prefix for preprocessing --- 36 prefix = -D 36 37 #-Q- sx8mercure prefix = -D 37 38 #-Q- sx9mercure prefix = -D -
branches/DEV_r1924_nocs_latphys/CONFIG/POMME/EXP00/namelist
r2190 r2201 178 178 sn_prec = 'precip_1988.nc' , -1 , 'precip' , .true. , .true. , 'yearly' , '' 179 179 sn_snow = 'precip_1988.nc' , -1 , 'precip' , .true. , .true. , 'yearly' , '' 180 sn_tdif = 'taudif_core' , 24 , 'taudif' , .true. , .true. , 'yearly' ,'' 180 181 ! 181 182 cn_dir = './' ! root directory for the location of the bulk files … … 312 313 rn_dpsin = 1. ! - - - south - - 313 314 rn_dpeob = 1500. ! time relaxation (days) for the east open boundary 314 rn_dpwob = 15. ! - - - west - -315 rn_dpwob = 150. ! - - - west - - 315 316 rn_dpnob = 150. ! - - - north - - 316 rn_dpsob = 15. ! - - - south - -317 rn_dpsob = 150. ! - - - south - - 317 318 rn_volemp = 1. ! = 0 the total volume change with the surface flux (E-P-R) 318 319 ! = 1 the total volume remains constant -
branches/DEV_r1924_nocs_latphys/CONFIG/POMME/scripts/BB_make
r1875 r2201 7 7 # Check your compilers option in consequence when using real F95 compilers 8 8 9 F_O += -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) 10 L_X = $(L_O) 9 11 #-Q- platine # Compiler options NEMO (CCRT Itanium Bull) 10 12 #-Q- platine F_O = -O3 -i4 -r8 -module $(MODDIR)/oce -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) … … 101 103 102 104 #check key compatibility 103 keycompat=$(if $( and $(findstring $1,$(P_P)),$(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible))105 keycompat=$(if $(word 2, $(findstring $1,$(P_P)) $(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible)) 104 106 105 107 KEY_LIST = \ … … 153 155 key_oasis4 \ 154 156 key_obc \ 155 key_off_tra \156 157 key_orca_lev10 \ 157 158 key_orca_r025 \ … … 179 180 key_vvl \ 180 181 key_zco \ 181 key_zco \182 182 key_zdfcst \ 183 183 key_zdfddm \ … … 191 191 $(MODEL_LIB)(lib_cray.o)\ 192 192 $(MODEL_LIB)(lib_print.o)\ 193 $(MODEL_LIB)(agrif_oce.o)\194 193 $(MODEL_LIB)(agrif_opa_interp.o)\ 195 194 $(MODEL_LIB)(agrif_opa_sponge.o)\ 196 195 $(MODEL_LIB)(agrif_opa_update.o)\ 197 $(MODEL_LIB)(agrif_top_interp.o)\198 $(MODEL_LIB)(agrif_top_sponge.o)\199 $(MODEL_LIB)(agrif_top_update.o)\200 $(MODEL_LIB)(agrif_user.o)\201 196 $(MODEL_LIB)(albedo.o)\ 202 197 $(MODEL_LIB)(bdy_oce.o)\ … … 437 432 438 433 # Agrif library and conv 439 libagrif : $(call keycompat,key_iomput,key_agrif)434 libagrif : 440 435 ifeq ($(AGRIF),use) 441 436 @( if [ ! -d OPAFILES ]; then mkdir OPAFILES; fi ) … … 568 563 @if [ -f $(PREF)$*.L ] ; then mv $(PREF)$*.L $(TMP) ; fi 569 564 570 $(MODEL_LIB)(agrif_oce.o) : \571 $(MODEL_LIB)(par_kind.o) \572 $(MODEL_LIB)(par_oce.o) \573 par_kind.F90 \574 par_oce.F90 \575 $(MODEL_LIB)(dom_oce.o) \576 $(MODEL_LIB)(par_oce.o) \577 dom_oce.F90 \578 par_oce.F90 \579 KEY_CPP \580 agrif_oce.F90581 565 $(MODEL_LIB)(agrif_opa_interp.o) : \ 582 $(MODEL_LIB)(dom_oce.o) \583 $(MODEL_LIB)(in_out_manager.o) \584 $(MODEL_LIB)(lib_print.o) \585 $(MODEL_LIB)(par_kind.o) \586 $(MODEL_LIB)(par_oce.o) \587 dom_oce.F90 \588 in_out_manager.F90 \589 lib_print.f90 \590 par_kind.F90 \591 par_oce.F90 \592 $(MODEL_LIB)(agrif_oce.o) \593 $(MODEL_LIB)(dom_oce.o) \594 $(MODEL_LIB)(in_out_manager.o) \595 $(MODEL_LIB)(oce.o) \596 $(MODEL_LIB)(par_oce.o) \597 $(MODEL_LIB)(phycst.o) \598 $(MODEL_LIB)(sol_oce.o) \599 agrif_oce.F90 \600 dom_oce.F90 \601 in_out_manager.F90 \602 oce.F90 \603 par_oce.F90 \604 phycst.F90 \605 sol_oce.F90 \606 domzgr_substitute.h90 \607 vectopt_loop_substitute.h90 \608 $(AGRIF_LIB) \609 KEY_CPP \610 566 agrif_opa_interp.F90 611 567 $(MODEL_LIB)(agrif_opa_sponge.o) : \ 612 $(MODEL_LIB)(dom_oce.o) \613 $(MODEL_LIB)(lib_print.o) \614 $(MODEL_LIB)(par_kind.o) \615 $(MODEL_LIB)(par_oce.o) \616 dom_oce.F90 \617 lib_print.f90 \618 par_kind.F90 \619 par_oce.F90 \620 $(MODEL_LIB)(agrif_oce.o) \621 $(MODEL_LIB)(dom_oce.o) \622 $(MODEL_LIB)(in_out_manager.o) \623 $(MODEL_LIB)(oce.o) \624 $(MODEL_LIB)(par_oce.o) \625 agrif_oce.F90 \626 dom_oce.F90 \627 in_out_manager.F90 \628 oce.F90 \629 par_oce.F90 \630 domzgr_substitute.h90 \631 $(AGRIF_LIB) \632 KEY_CPP \633 568 agrif_opa_sponge.F90 634 569 $(MODEL_LIB)(agrif_opa_update.o) : \ 635 $(MODEL_LIB)(bdy_oce.o) \636 $(MODEL_LIB)(cla_div.o) \637 $(MODEL_LIB)(diaar5.o) \638 $(MODEL_LIB)(divcur.o) \639 $(MODEL_LIB)(dom_oce.o) \640 $(MODEL_LIB)(domvvl.o) \641 $(MODEL_LIB)(in_out_manager.o) \642 $(MODEL_LIB)(iom.o) \643 $(MODEL_LIB)(lbclnk.o) \644 $(MODEL_LIB)(lib_mpp.o) \645 $(MODEL_LIB)(obc_oce.o) \646 $(MODEL_LIB)(obc_par.o) \647 $(MODEL_LIB)(oce.o) \648 $(MODEL_LIB)(par_kind.o) \649 $(MODEL_LIB)(par_oce.o) \650 $(MODEL_LIB)(phycst.o) \651 $(MODEL_LIB)(prtctl.o) \652 $(MODEL_LIB)(restart.o) \653 $(MODEL_LIB)(sbc_oce.o) \654 bdy_oce.F90 \655 cla_div.F90 \656 diaar5.F90 \657 divcur.F90 \658 dom_oce.F90 \659 domvvl.F90 \660 in_out_manager.F90 \661 iom.F90 \662 lbclnk.F90 \663 lib_mpp.F90 \664 obc_oce.F90 \665 obc_par.F90 \666 oce.F90 \667 par_kind.F90 \668 par_oce.F90 \669 phycst.F90 \670 prtctl.F90 \671 restart.F90 \672 sbc_oce.F90 \673 $(MODEL_LIB)(agrif_oce.o) \674 $(MODEL_LIB)(cla_div.o) \675 $(MODEL_LIB)(divcur.o) \676 $(MODEL_LIB)(dom_oce.o) \677 $(MODEL_LIB)(oce.o) \678 $(MODEL_LIB)(par_oce.o) \679 $(MODEL_LIB)(sshwzv.o) \680 agrif_oce.F90 \681 cla_div.F90 \682 divcur.F90 \683 dom_oce.F90 \684 oce.F90 \685 par_oce.F90 \686 sshwzv.F90 \687 domzgr_substitute.h90 \688 $(AGRIF_LIB) \689 KEY_CPP \690 570 agrif_opa_update.F90 691 $(MODEL_LIB)(agrif_top_interp.o) : \692 $(MODEL_LIB)(dom_oce.o) \693 $(MODEL_LIB)(par_kind.o) \694 $(MODEL_LIB)(par_oce.o) \695 dom_oce.F90 \696 par_kind.F90 \697 par_oce.F90 \698 $(MODEL_LIB)(agrif_oce.o) \699 $(MODEL_LIB)(dom_oce.o) \700 $(MODEL_LIB)(oce.o) \701 $(MODEL_LIB)(par_oce.o) \702 $(MODEL_LIB)(sol_oce.o) \703 agrif_oce.F90 \704 dom_oce.F90 \705 oce.F90 \706 par_oce.F90 \707 sol_oce.F90 \708 domzgr_substitute.h90 \709 vectopt_loop_substitute.h90 \710 $(AGRIF_LIB) \711 KEY_CPP \712 agrif_top_interp.F90713 $(MODEL_LIB)(agrif_top_sponge.o) : \714 $(MODEL_LIB)(dom_oce.o) \715 $(MODEL_LIB)(lib_print.o) \716 $(MODEL_LIB)(par_kind.o) \717 $(MODEL_LIB)(par_oce.o) \718 dom_oce.F90 \719 lib_print.f90 \720 par_kind.F90 \721 par_oce.F90 \722 $(MODEL_LIB)(agrif_oce.o) \723 $(MODEL_LIB)(dom_oce.o) \724 $(MODEL_LIB)(in_out_manager.o) \725 $(MODEL_LIB)(oce.o) \726 $(MODEL_LIB)(par_oce.o) \727 agrif_oce.F90 \728 dom_oce.F90 \729 in_out_manager.F90 \730 oce.F90 \731 par_oce.F90 \732 domzgr_substitute.h90 \733 $(AGRIF_LIB) \734 KEY_CPP \735 agrif_top_sponge.F90736 $(MODEL_LIB)(agrif_top_update.o) : \737 $(MODEL_LIB)(dom_oce.o) \738 $(MODEL_LIB)(par_kind.o) \739 $(MODEL_LIB)(par_oce.o) \740 dom_oce.F90 \741 par_kind.F90 \742 par_oce.F90 \743 $(MODEL_LIB)(agrif_oce.o) \744 $(MODEL_LIB)(dom_oce.o) \745 $(MODEL_LIB)(oce.o) \746 $(MODEL_LIB)(par_oce.o) \747 agrif_oce.F90 \748 dom_oce.F90 \749 oce.F90 \750 par_oce.F90 \751 domzgr_substitute.h90 \752 $(AGRIF_LIB) \753 KEY_CPP \754 agrif_top_update.F90755 $(MODEL_LIB)(agrif_user.o) : \756 $(MODEL_LIB)(agrif_oce.o) \757 $(MODEL_LIB)(bdy_par.o) \758 $(MODEL_LIB)(bdyini.o) \759 $(MODEL_LIB)(c1d.o) \760 $(MODEL_LIB)(cla_div.o) \761 $(MODEL_LIB)(cpl_oasis3.o) \762 $(MODEL_LIB)(cpl_oasis4.o) \763 $(MODEL_LIB)(diaptr.o) \764 $(MODEL_LIB)(divcur.o) \765 $(MODEL_LIB)(dom_oce.o) \766 $(MODEL_LIB)(domain.o) \767 $(MODEL_LIB)(domcfg.o) \768 $(MODEL_LIB)(dtasal.o) \769 $(MODEL_LIB)(dtatem.o) \770 $(MODEL_LIB)(dyncor_c1d.o) \771 $(MODEL_LIB)(dynhpg.o) \772 $(MODEL_LIB)(dynspg_oce.o) \773 $(MODEL_LIB)(eosbn2.o) \774 $(MODEL_LIB)(in_out_manager.o) \775 $(MODEL_LIB)(iom.o) \776 $(MODEL_LIB)(istate.o) \777 $(MODEL_LIB)(ldfdyn.o) \778 $(MODEL_LIB)(ldftra.o) \779 $(MODEL_LIB)(lib_mpp.o) \780 $(MODEL_LIB)(lib_print.o) \781 $(MODEL_LIB)(mppini.o) \782 $(MODEL_LIB)(obc_par.o) \783 $(MODEL_LIB)(obcini.o) \784 $(MODEL_LIB)(oce.o) \785 $(MODEL_LIB)(par_kind.o) \786 $(MODEL_LIB)(par_oce.o) \787 $(MODEL_LIB)(phycst.o) \788 $(MODEL_LIB)(prtctl.o) \789 $(MODEL_LIB)(sbc_oce.o) \790 $(MODEL_LIB)(sbcmod.o) \791 $(MODEL_LIB)(sol_oce.o) \792 $(MODEL_LIB)(sshwzv.o) \793 $(MODEL_LIB)(step.o) \794 $(MODEL_LIB)(step_c1d.o) \795 $(MODEL_LIB)(trdmod.o) \796 $(MODEL_LIB)(trdmod_oce.o) \797 $(MODEL_LIB)(zdf_oce.o) \798 $(MODEL_LIB)(zdfini.o) \799 $(MODEL_LIB)(zdfmxl.o) \800 agrif_oce.F90 \801 bdy_par.F90 \802 bdyini.F90 \803 c1d.F90 \804 cla_div.F90 \805 cpl_oasis3.F90 \806 cpl_oasis4.F90 \807 diaptr.F90 \808 divcur.F90 \809 dom_oce.F90 \810 domain.F90 \811 domcfg.F90 \812 dtasal.F90 \813 dtatem.F90 \814 dyncor_c1d.F90 \815 dynhpg.F90 \816 dynspg_oce.F90 \817 eosbn2.F90 \818 in_out_manager.F90 \819 iom.F90 \820 istate.F90 \821 ldfdyn.F90 \822 ldftra.F90 \823 lib_mpp.F90 \824 lib_print.f90 \825 mppini.F90 \826 obc_par.F90 \827 obcini.F90 \828 oce.F90 \829 par_kind.F90 \830 par_oce.F90 \831 phycst.F90 \832 prtctl.F90 \833 sbc_oce.F90 \834 sbcmod.F90 \835 sol_oce.F90 \836 sshwzv.F90 \837 step.F90 \838 step_c1d.F90 \839 trdmod.F90 \840 trdmod_oce.F90 \841 zdf_oce.F90 \842 zdfini.F90 \843 zdfmxl.F90 \844 $(MODEL_LIB)(agrif_oce.o) \845 $(MODEL_LIB)(agrif_opa_interp.o) \846 $(MODEL_LIB)(agrif_opa_sponge.o) \847 $(MODEL_LIB)(agrif_opa_update.o) \848 $(MODEL_LIB)(agrif_top_interp.o) \849 $(MODEL_LIB)(agrif_top_sponge.o) \850 $(MODEL_LIB)(agrif_top_update.o) \851 $(MODEL_LIB)(dom_oce.o) \852 $(MODEL_LIB)(in_out_manager.o) \853 $(MODEL_LIB)(obc_par.o) \854 $(MODEL_LIB)(oce.o) \855 $(MODEL_LIB)(opa.o) \856 $(MODEL_LIB)(par_oce.o) \857 $(MODEL_LIB)(sol_oce.o) \858 $(MODEL_LIB)(tradmp.o) \859 agrif_oce.F90 \860 agrif_opa_interp.F90 \861 agrif_opa_sponge.F90 \862 agrif_opa_update.F90 \863 agrif_top_interp.F90 \864 agrif_top_sponge.F90 \865 agrif_top_update.F90 \866 dom_oce.F90 \867 in_out_manager.F90 \868 obc_par.F90 \869 oce.F90 \870 opa.F90 \871 par_oce.F90 \872 sol_oce.F90 \873 tradmp.F90 \874 $(AGRIF_LIB) \875 KEY_CPP \876 agrif_user.F90877 571 $(MODEL_LIB)(albedo.o) : \ 878 572 $(MODEL_LIB)(in_out_manager.o) \ … … 3168 2862 dynldf_lap.F90 3169 2863 $(MODEL_LIB)(dynnxt.o) : \ 3170 $(MODEL_LIB)(agrif_oce.o) \3171 2864 $(MODEL_LIB)(bdy_oce.o) \ 3172 2865 $(MODEL_LIB)(bdy_par.o) \ 3173 2866 $(MODEL_LIB)(bdytides.o) \ 3174 $(MODEL_LIB)(cla_div.o) \3175 $(MODEL_LIB)(divcur.o) \3176 2867 $(MODEL_LIB)(dom_oce.o) \ 3177 2868 $(MODEL_LIB)(dynadv_cen2.o) \ … … 3193 2884 $(MODEL_LIB)(phycst.o) \ 3194 2885 $(MODEL_LIB)(sbc_oce.o) \ 3195 $(MODEL_LIB)(sol_oce.o) \3196 $(MODEL_LIB)(sshwzv.o) \3197 agrif_oce.F90 \3198 2886 bdy_oce.F90 \ 3199 2887 bdy_par.F90 \ 3200 2888 bdytides.F90 \ 3201 cla_div.F90 \3202 divcur.F90 \3203 2889 dom_oce.F90 \ 3204 2890 dynadv_cen2.F90 \ … … 3220 2906 phycst.F90 \ 3221 2907 sbc_oce.F90 \ 3222 sol_oce.F90 \3223 sshwzv.F90 \3224 2908 $(MODEL_LIB)(agrif_opa_interp.o) \ 3225 2909 $(MODEL_LIB)(agrif_opa_update.o) \ … … 3494 3178 dynspg_exp.F90 3495 3179 $(MODEL_LIB)(dynspg_flt.o) : \ 3496 $(MODEL_LIB)(agrif_oce.o) \3497 3180 $(MODEL_LIB)(bdy_oce.o) \ 3498 3181 $(MODEL_LIB)(bdy_par.o) \ … … 3536 3219 $(MODEL_LIB)(zdfmxl.o) \ 3537 3220 $(MODEL_LIB)(zpshde.o) \ 3538 agrif_oce.F90 \3539 3221 bdy_oce.F90 \ 3540 3222 bdy_par.F90 \ … … 5643 5325 $(MODEL_LIB)(limistate_2.o) \ 5644 5326 $(MODEL_LIB)(phycst.o) \ 5327 $(MODEL_LIB)(sbc_oce.o) \ 5645 5328 dom_ice_2.F90 \ 5646 5329 dom_oce.F90 \ … … 5653 5336 limistate_2.F90 \ 5654 5337 phycst.F90 \ 5338 sbc_oce.F90 \ 5655 5339 vectopt_loop_substitute.h90 \ 5656 5340 KEY_CPP \ … … 7903 7587 sshwzv.F90 7904 7588 $(MODEL_LIB)(step.o) : \ 7905 $(MODEL_LIB)(agrif_oce.o) \7906 7589 $(MODEL_LIB)(agrif_opa_interp.o) \ 7907 7590 $(MODEL_LIB)(agrif_opa_update.o) \ … … 8025 7708 $(MODEL_LIB)(zdftke_old.o) \ 8026 7709 $(MODEL_LIB)(zpshde.o) \ 8027 agrif_oce.F90 \8028 7710 agrif_opa_interp.F90 \ 8029 7711 agrif_opa_update.F90 \ … … 9949 9631 tranpc.F90 9950 9632 $(MODEL_LIB)(tranxt.o) : \ 9951 $(MODEL_LIB)(agrif_oce.o) \9952 9633 $(MODEL_LIB)(bdy_oce.o) \ 9953 $(MODEL_LIB)(cla_div.o) \9954 $(MODEL_LIB)(divcur.o) \9955 9634 $(MODEL_LIB)(dom_oce.o) \ 9956 9635 $(MODEL_LIB)(in_out_manager.o) \ … … 9968 9647 $(MODEL_LIB)(prtctl.o) \ 9969 9648 $(MODEL_LIB)(sbc_oce.o) \ 9970 $(MODEL_LIB)(sol_oce.o) \9971 $(MODEL_LIB)(sshwzv.o) \9972 9649 $(MODEL_LIB)(trdicp.o) \ 9973 9650 $(MODEL_LIB)(trdicp_oce.o) \ … … 9979 9656 $(MODEL_LIB)(trdvor_oce.o) \ 9980 9657 $(MODEL_LIB)(zdf_oce.o) \ 9981 agrif_oce.F90 \9982 9658 bdy_oce.F90 \ 9983 cla_div.F90 \9984 divcur.F90 \9985 9659 dom_oce.F90 \ 9986 9660 in_out_manager.F90 \ … … 9998 9672 prtctl.F90 \ 9999 9673 sbc_oce.F90 \ 10000 sol_oce.F90 \10001 sshwzv.F90 \10002 9674 trdicp.F90 \ 10003 9675 trdicp_oce.F90 \ -
branches/DEV_r1924_nocs_latphys/CONFIG/POMME/scripts/BB_make.ldef
r1791 r2201 34 34 #- 35 35 #- Prefix for preprocessing --- 36 prefix = -D 36 37 #-Q- sx8mercure prefix = -D 37 38 #-Q- sx9mercure prefix = -D -
branches/DEV_r1924_nocs_latphys/NEMO/LIM_SRC_2/limsbc_2.F90
r1756 r2201 80 80 INTEGER :: ifvt, i1mfr, idfr ! some switches 81 81 INTEGER :: iflt, ial, iadv, ifral, ifrdv 82 INTEGER :: ii0, ii1, ij0, ij1 ! temporary integers83 82 REAL(wp) :: zrdtir ! 1. / rdt_ice 84 83 REAL(wp) :: zqsr , zqns ! solar & non solar heat flux … … 109 108 sice_r(:,:) = sice 110 109 ! 111 IF( cp_cfg == "orca" .AND. jp_cfg == 2 ) THEN 112 ! ! ======================= 113 ! ! ORCA_R2 configuration 114 ! ! ======================= 115 ii0 = 145 ; ii1 = 180 ! Baltic Sea 116 ij0 = 113 ; ij1 = 130 ; soce_r(mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 4.e0 117 sice_r(mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 2.e0 118 ENDIF 119 ! 120 ENDIF 110 IF( cp_cfg == "orca" ) THEN 111 ! ocean/ice salinity in the Baltic sea 112 DO jj = 1, jpj 113 DO ji = 1, jpi 114 IF( glamt(ji,jj) >= 14. .AND. glamt(ji,jj) <= 32. .AND. gphit(ji,jj) >= 54. .AND. gphit(ji,jj) <= 66. ) THEN 115 soce_r(ji,jj) = 4.e0 116 sice_r(ji,jj) = 2.e0 117 END IF 118 END DO 119 END DO 120 ! 121 END IF 122 END IF 121 123 122 124 !------------------------------------------! -
branches/DEV_r1924_nocs_latphys/NEMO/NST_SRC/agrif_user.F90
r1876 r2201 101 101 #endif 102 102 103 Call opa_init ! Initializations of each fine grid104 Call agrif_opa_init105 106 103 ! Specific fine grid Initializations 107 104 #if defined key_tradmp || defined key_esopa … … 113 110 lk_obc = .FALSE. 114 111 #endif 112 113 Call opa_init ! Initializations of each fine grid 114 Call agrif_opa_init 115 115 116 ! 1. Declaration of the type of variable which have to be interpolated 116 117 !--------------------------------------------------------------------- -
branches/DEV_r1924_nocs_latphys/NEMO/OFF_SRC/DOM/phycst.F90
r1746 r2201 37 37 rtt = 273.16_wp , & !: triple point of temperature (Kelvin) 38 38 rt0 = 273.15_wp , & !: freezing point of water (Kelvin) 39 rau0 = 1020._wp , & !: volumic mass of reference (kg/m3) 40 rauw = 1000._wp , & !: density of pure water (kg/m3) 39 rau0 = 1035._wp , & !: volumic mass of reference (kg/m3) 41 40 rcp = 4.e+3_wp, & !: ocean specific heat 42 41 ro0cpr !: = 1. / ( rau0 * rcp ) … … 127 126 ro0cpr = 1. / ( rau0 * rcp ) 128 127 IF(lwp) WRITE(numout,*) 129 IF(lwp) WRITE(numout,*) ' volumic mass of pure water rauw = ', rauw, ' kg/m^3'130 128 IF(lwp) WRITE(numout,*) ' volumic mass of reference rau0 = ', rau0, ' kg/m^3' 131 129 IF(lwp) WRITE(numout,*) ' ocean specific heat rcp = ', rcp -
branches/DEV_r1924_nocs_latphys/NEMO/OFF_SRC/IOM/iom_ioipsl.F90
r1749 r2201 81 81 iln = INDEX( cdname, '.nc' ) 82 82 IF( ldwrt ) THEN ! the file should be open in write mode so we create it... 83 IF( llclobber ) THEN ; clstatus = 'REPLACE '84 ELSE ; clstatus = 'NEW '83 IF( llclobber ) THEN ; clstatus = 'REPLACE 64' 84 ELSE ; clstatus = 'NEW 64' 85 85 ENDIF 86 86 IF( jpnij > 1 ) THEN -
branches/DEV_r1924_nocs_latphys/NEMO/OFF_SRC/IOM/iom_nf90.F90
r1749 r2201 94 94 IF(lwp) WRITE(numout,*) TRIM(clinfo)//' create new file: '//TRIM(cdname)//' in WRITE mode' 95 95 96 IF( llclobber ) THEN ; imode = NF90_CLOBBER97 ELSE ; imode = NF90_NOCLOBBER96 IF( llclobber ) THEN ; imode = IOR( NF90_64BIT_OFFSET, NF90_CLOBBER ) 97 ELSE ; imode = IOR( NF90_64BIT_OFFSET, NF90_NOCLOBBER ) 98 98 ENDIF 99 99 CALL iom_nf90_check(NF90_CREATE( TRIM(cdname), imode, if90id, chunksize = ichunk ), clinfo) -
branches/DEV_r1924_nocs_latphys/NEMO/OFF_SRC/lib_mpp.F90
r1324 r2201 105 105 !! ========================= !! 106 106 !$AGRIF_DO_NOT_TREAT 107 # include <mpif.h> 107 INCLUDE mpif.h 108 108 !$AGRIF_END_DO_NOT_TREAT 109 109 -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/DIA/diaar5.F90
r1756 r2201 175 175 thick0(:,:) = 0.e0 176 176 DO jk = 1, jpkm1 177 vol0 = vol0 + SUM( area (:,:) * tmask(:,:,jk) ) * e3t_0(jk) 178 thick0(:,:) = thick0(:,:) + tmask_i(:,:) * tmask(:,:,jk) * e3t_0(jk) 179 END DO 177 vol0 = vol0 + SUM( area (:,:) * tmask(:,:,jk) * fse3t_0(:,:,jk) ) 178 thick0(:,:) = thick0(:,:) + tmask_i(:,:) * tmask(:,:,jk) * fse3t_0(:,:,jk) 179 END DO 180 IF( lk_mpp ) CALL mpp_sum( vol0 ) 180 181 181 182 CALL iom_open ( 'data_1m_salinity_nomask', inum ) -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/DOM/daymod.F90
r1730 r2201 239 239 ENDIF 240 240 241 IF( lrst_oce ) CALL day_rst( kt, 'WRITE' ) 241 CALL rst_opn( kt ) ! Open the restart file if needed and control lrst_oce 242 IF( lrst_oce ) CALL day_rst( kt, 'WRITE' ) ! write day restart information 242 243 ! 243 244 END SUBROUTINE day -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/DOM/domvvl.F90
r1694 r2201 62 62 IF( lk_zco ) CALL ctl_stop( 'dom_vvl : key_zco is incompatible with variable volume option key_vvl') 63 63 64 fsdept(:,:,:) = gdept (:,:,:) 65 fsdepw(:,:,:) = gdepw (:,:,:) 66 fsde3w(:,:,:) = gdep3w(:,:,:) 67 fse3t (:,:,:) = e3t (:,:,:) 68 fse3u (:,:,:) = e3u (:,:,:) 69 fse3v (:,:,:) = e3v (:,:,:) 70 fse3f (:,:,:) = e3f (:,:,:) 71 fse3w (:,:,:) = e3w (:,:,:) 72 fse3uw(:,:,:) = e3uw (:,:,:) 73 fse3vw(:,:,:) = e3vw (:,:,:) 64 IF( ln_zco) THEN 65 DO jk = 1, jpk 66 gdept(:,:,jk) = gdept_0(jk) 67 gdepw(:,:,jk) = gdepw_0(jk) 68 gdep3w(:,:,jk) = gdepw_0(jk) 69 e3t (:,:,jk) = e3t_0(jk) 70 e3u (:,:,jk) = e3t_0(jk) 71 e3v (:,:,jk) = e3t_0(jk) 72 e3f (:,:,jk) = e3t_0(jk) 73 e3w (:,:,jk) = e3w_0(jk) 74 e3uw(:,:,jk) = e3w_0(jk) 75 e3vw(:,:,jk) = e3w_0(jk) 76 END DO 77 ELSE 78 fsdept(:,:,:) = gdept (:,:,:) 79 fsdepw(:,:,:) = gdepw (:,:,:) 80 fsde3w(:,:,:) = gdep3w(:,:,:) 81 fse3t (:,:,:) = e3t (:,:,:) 82 fse3u (:,:,:) = e3u (:,:,:) 83 fse3v (:,:,:) = e3v (:,:,:) 84 fse3f (:,:,:) = e3f (:,:,:) 85 fse3w (:,:,:) = e3w (:,:,:) 86 fse3uw(:,:,:) = e3uw (:,:,:) 87 fse3vw(:,:,:) = e3vw (:,:,:) 88 ENDIF 74 89 75 90 ! !== mu computation ==! … … 139 154 CALL lbc_lnk( sshf_b, 'F', 1. ) ; CALL lbc_lnk( sshf_n, 'F', 1. ) 140 155 ! 156 DO jk = 1, jpkm1 157 fsdept(:,:,jk) = fsdept_n(:,:,jk) ! now local depths stored in fsdep. arrays 158 fsdepw(:,:,jk) = fsdepw_n(:,:,jk) 159 fsde3w(:,:,jk) = fsde3w_n(:,:,jk) 160 ! 161 fse3t (:,:,jk) = fse3t_n (:,:,jk) ! vertical scale factors stored in fse3. arrays 162 fse3u (:,:,jk) = fse3u_n (:,:,jk) 163 fse3v (:,:,jk) = fse3v_n (:,:,jk) 164 fse3f (:,:,jk) = fse3f_n (:,:,jk) 165 fse3w (:,:,jk) = fse3w_n (:,:,jk) 166 fse3uw(:,:,jk) = fse3uw_n(:,:,jk) 167 fse3vw(:,:,jk) = fse3vw_n(:,:,jk) 168 END DO 169 170 171 141 172 END SUBROUTINE dom_vvl 142 173 -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/DOM/domwri.F90
r1590 r2201 45 45 !! domhgr, domzgr, and dommsk. Note: the file contain depends on 46 46 !! the vertical coord. used (z-coord, partial steps, s-coord) 47 !! nmsh= 1 : 'mesh_mask.nc' file47 !! MOD(nmsh, 3) = 1 : 'mesh_mask.nc' file 48 48 !! = 2 : 'mesh.nc' and mask.nc' files 49 !! = 3: 'mesh_hgr.nc', 'mesh_zgr.nc' and49 !! = 0 : 'mesh_hgr.nc', 'mesh_zgr.nc' and 50 50 !! 'mask.nc' files 51 51 !! For huge size domain, use option 2 or 3 depending on your 52 52 !! vertical coordinate. 53 !! 54 !! if nmsh <= 3: write full 3D arrays for e3[tuvw] and gdep[tuvw] 55 !! if 3 < nmsh <= 6: write full 3D arrays for e3[tuvw] and 2D arrays 56 !! corresponding to the depth of the bottom points hdep[tw] 57 !! if 6 < nmsh <= 9: write 2D arrays corresponding to the depth and the 58 !! thickness of the bottom points hdep[tw] and e3[tw]_ps 53 59 !! 54 60 !! ** output file : … … 241 247 ! ! close the files 242 248 ! ! ============================ 243 SELECT CASE ( nmsh)249 SELECT CASE ( MOD(nmsh, 3) ) 244 250 CASE ( 1 ) 245 251 CALL iom_close( inum0 ) … … 247 253 CALL iom_close( inum1 ) 248 254 CALL iom_close( inum2 ) 249 CASE ( 3)255 CASE ( 0 ) 250 256 CALL iom_close( inum2 ) 251 257 CALL iom_close( inum3 ) -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/DOM/phycst.F90
r1860 r2201 4 4 !! Definition of of both ocean and ice parameters used in the code 5 5 !!===================================================================== 6 !! History : OPA ! 1990-10 (C. Levy ,G. Madec) Original code7 !! ! 1991-11 (G. Madec, M. Imbard)8 !! NEMO1.0 ! 2002-08 (G. Madec, C. Ethe) F90, add ice constants6 !! History : OPA ! 1990-10 (C. Levy - G. Madec) Original code 7 !! 8.1 ! 1991-11 (G. Madec, M. Imbard) cosmetic changes 8 !! NEMO 1.0 ! 2002-08 (G. Madec, C. Ethe) F90, add ice constants 9 9 !! - ! 2006-08 (G. Madec) style 10 !! 3.2 ! 2006-08 (S. Masson, G. Madec) suppress useless variables + style 10 11 !!---------------------------------------------------------------------- 11 12 … … 23 24 REAL(wp), PUBLIC :: rpi = 3.141592653589793_wp !: pi 24 25 REAL(wp), PUBLIC :: rad = 3.141592653589793_wp / 180._wp !: conversion from degre into radian 25 REAL(wp), PUBLIC :: rsmall = 0.5 * EPSILON( 1. )!: smallest real computer value26 REAL(wp), PUBLIC :: rsmall = 0.5 * EPSILON( 1.e0 ) !: smallest real computer value 26 27 27 REAL(wp), PUBLIC :: & !: 28 rday = 24.*60.*60. , & !: day (s) 29 rsiyea , & !: sideral year (s) 30 rsiday , & !: sideral day (s) 31 raamo = 12._wp , & !: number of months in one year 32 rjjhh = 24._wp , & !: number of hours in one day 33 rhhmm = 60._wp , & !: number of minutes in one hour 34 rmmss = 60._wp , & !: number of seconds in one minute 35 !!! omega = 7.292115083046061e-5_wp , & !: change the last digit! 36 omega , & !: earth rotation parameter 37 ra = 6371229._wp , & !: earth radius (meter) 38 grav = 9.80665_wp !: gravity (m/s2) 28 REAL(wp), PUBLIC :: rday = 24.*60.*60. !: day (s) 29 REAL(wp), PUBLIC :: rsiyea !: sideral year (s) 30 REAL(wp), PUBLIC :: rsiday !: sideral day (s) 31 REAL(wp), PUBLIC :: raamo = 12._wp !: number of months in one year 32 REAL(wp), PUBLIC :: rjjhh = 24._wp !: number of hours in one day 33 REAL(wp), PUBLIC :: rhhmm = 60._wp !: number of minutes in one hour 34 REAL(wp), PUBLIC :: rmmss = 60._wp !: number of seconds in one minute 35 !! REAL(wp), PUBLIC :: omega = 7.292115083046061e-5_wp , & !: change the last digit! 36 REAL(wp), PUBLIC :: omega !: earth rotation parameter 37 REAL(wp), PUBLIC :: ra = 6371229._wp !: earth radius (meter) 38 REAL(wp), PUBLIC :: grav = 9.80665_wp !: gravity (m/s2) 39 39 40 REAL(wp), PUBLIC :: & !: 41 rtt = 273.16_wp , & !: triple point of temperature (Kelvin) 42 rt0 = 273.15_wp , & !: freezing point of water (Kelvin) 40 REAL(wp), PUBLIC :: rtt = 273.16_wp !: triple point of temperature (Kelvin) 41 REAL(wp), PUBLIC :: rt0 = 273.15_wp !: freezing point of water (Kelvin) 43 42 #if defined key_lim3 44 rt0_snow = 273.16_wp , &!: melting point of snow (Kelvin)45 rt0_ice = 273.16_wp , &!: melting point of ice (Kelvin)43 REAL(wp), PUBLIC :: rt0_snow = 273.16_wp !: melting point of snow (Kelvin) 44 REAL(wp), PUBLIC :: rt0_ice = 273.16_wp !: melting point of ice (Kelvin) 46 45 #else 47 rt0_snow = 273.15_wp , &!: melting point of snow (Kelvin)48 rt0_ice = 273.05_wp , &!: melting point of ice (Kelvin)46 REAL(wp), PUBLIC :: rt0_snow = 273.15_wp !: melting point of snow (Kelvin) 47 REAL(wp), PUBLIC :: rt0_ice = 273.05_wp !: melting point of ice (Kelvin) 49 48 #endif 50 rau0 = 1035._wp , & !: volumic mass of reference (kg/m3)51 rauw = 1000._wp , & !: volumic mass of pure water (kg/m3)52 rcp = 4.e+3_wp, & !: ocean specific heat53 ro0cpr !: = 1. / ( rau0 * rcp )54 49 55 REAL(wp), PUBLIC :: & !: 50 REAL(wp), PUBLIC :: rau0 = 1020._wp !: reference volumic mass (density) (kg/m3) 51 REAL(wp), PUBLIC :: rau0r !: reference specific volume (m3/kg) 52 REAL(wp), PUBLIC :: rcp = 4.e+3_wp !: ocean specific heat 53 REAL(wp), PUBLIC :: ro0cpr !: = 1. / ( rau0 * rcp ) 54 56 55 #if defined key_lim3 57 rcdsn = 0.31_wp , &!: thermal conductivity of snow58 rcdic = 2.034396_wp , &!: thermal conductivity of fresh ice59 cpic = 2067.0 , &60 lsub = 2.834e+6 , &!: pure ice latent heat of sublimation (J.kg-1)61 lfus = 0.334e+6 , &!: latent heat of fusion of fresh ice (J.kg-1)62 rhoic = 917._wp , &!: volumic mass of sea ice (kg/m3)63 tmut = 0.054 , &!: decrease of seawater meltpoint with salinity56 REAL(wp), PUBLIC :: rcdsn = 0.31_wp !: thermal conductivity of snow 57 REAL(wp), PUBLIC :: rcdic = 2.034396_wp !: thermal conductivity of fresh ice 58 REAL(wp), PUBLIC :: cpic = 2067.0 !: specific heat of sea ice 59 REAL(wp), PUBLIC :: lsub = 2.834e+6 !: pure ice latent heat of sublimation (J.kg-1) 60 REAL(wp), PUBLIC :: lfus = 0.334e+6 !: latent heat of fusion of fresh ice (J.kg-1) 61 REAL(wp), PUBLIC :: rhoic = 917._wp !: volumic mass of sea ice (kg/m3) 62 REAL(wp), PUBLIC :: tmut = 0.054 !: decrease of seawater meltpoint with salinity 64 63 #else 65 rcdsn = 0.22_wp , &!: conductivity of the snow66 rcdic = 2.034396_wp , &!: conductivity of the ice67 rcpsn = 6.9069e+5_wp, &!: density times specific heat for snow68 rcpic = 1.8837e+6_wp, &!: volumetric latent heat fusion of sea ice69 lfus = 0.3337e+6 , & !: latent heat of fusion of fresh ice (J.kg-1)70 xlsn = 110.121e+6_wp , & !: = lfus * rhosn,volumetric latent heat fusion of snow71 xlic = 300.33e+6_wp , & !: = lfus * rhosn,volumetric latent heat fusion of ice72 xsn = 2.8e+6 , &!: latent heat of sublimation of snow73 rhoic = 900._wp , &!: volumic mass of sea ice (kg/m3)64 REAL(wp), PUBLIC :: rcdsn = 0.22_wp !: conductivity of the snow 65 REAL(wp), PUBLIC :: rcdic = 2.034396_wp !: conductivity of the ice 66 REAL(wp), PUBLIC :: rcpsn = 6.9069e+5_wp !: density times specific heat for snow 67 REAL(wp), PUBLIC :: rcpic = 1.8837e+6_wp !: volumetric latent heat fusion of sea ice 68 REAL(wp), PUBLIC :: lfus = 0.3337e+6 !: latent heat of fusion of fresh ice (J.kg-1) 69 REAL(wp), PUBLIC :: xlsn = 110.121e+6_wp !: volumetric latent heat fusion of snow 70 REAL(wp), PUBLIC :: xlic = 300.33e+6_wp !: volumetric latent heat fusion of ice 71 REAL(wp), PUBLIC :: xsn = 2.8e+6 !: latent heat of sublimation of snow 72 REAL(wp), PUBLIC :: rhoic = 900._wp !: volumic mass of sea ice (kg/m3) 74 73 #endif 75 rhosn = 330._wp , &!: volumic mass of snow (kg/m3)76 emic = 0.97_wp , &!: emissivity of snow or ice77 sice = 6.0_wp , & !:salinity of ice (psu)78 soce = 34.7_wp , & !:salinity of sea (psu)79 cevap = 2.5e+6_wp , &!: latent heat of evaporation (water)80 srgamma = 0.9_wp , &!: correction factor for solar radiation (Oberhuber, 1974)81 vkarmn = 0.4_wp , &!: von Karman constant82 stefan = 5.67e-8_wp!: Stefan-Boltzmann constant83 84 !! NEMO/OPA 3.2 , LOCEAN-IPSL (2010)85 86 87 74 REAL(wp), PUBLIC :: rhosn = 330._wp !: volumic mass of snow (kg/m3) 75 REAL(wp), PUBLIC :: emic = 0.97_wp !: emissivity of snow or ice 76 REAL(wp), PUBLIC :: sice = 6.0_wp !: reference salinity of ice (psu) 77 REAL(wp), PUBLIC :: soce = 34.7_wp !: reference salinity of sea (psu) 78 REAL(wp), PUBLIC :: cevap = 2.5e+6_wp !: latent heat of evaporation (water) 79 REAL(wp), PUBLIC :: srgamma = 0.9_wp !: correction factor for solar radiation (Oberhuber, 1974) 80 REAL(wp), PUBLIC :: vkarmn = 0.4_wp !: von Karman constant 81 REAL(wp), PUBLIC :: stefan = 5.67e-8_wp !: Stefan-Boltzmann constant 82 !!---------------------------------------------------------------------- 83 !! NEMO/OPA 3.2 , LOCEAN-IPSL (2009) 84 !! $Id$ 85 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 86 !!---------------------------------------------------------------------- 88 87 89 88 CONTAINS … … 98 97 !!---------------------------------------------------------------------- 99 98 100 IF(lwp) WRITE(numout,*) 101 IF(lwp) WRITE(numout,*) ' phy_cst : initialization of ocean parameters and constants' 102 IF(lwp) WRITE(numout,*) ' ~~~~~~~' 99 ! ! Define additional parameters 100 rsiyea = 365.25 * rday * 2. * rpi / 6.283076 101 rsiday = rday / ( 1. + rday / rsiyea ) 102 omega = 2. * rpi / rsiday 103 103 104 ! Ocean Parameters 105 ! ---------------- 106 IF(lwp) THEN 104 rau0r = 1. / rau0 105 ro0cpr = 1. / ( rau0 * rcp ) 106 107 108 IF(lwp) THEN ! control print 109 WRITE(numout,*) 110 WRITE(numout,*) ' phy_cst : initialization of ocean parameters and constants' 111 WRITE(numout,*) ' ~~~~~~~' 107 112 WRITE(numout,*) ' Domain info' 108 113 WRITE(numout,*) ' dimension of model' … … 117 122 WRITE(numout,*) ' jpnij : ', jpnij 118 123 WRITE(numout,*) ' lateral domain boundary condition type : jperio = ', jperio 119 ENDIF 120 121 ! Define constants 122 ! ---------------- 123 IF(lwp) WRITE(numout,*) 124 IF(lwp) WRITE(numout,*) ' Constants' 125 126 IF(lwp) WRITE(numout,*) 127 IF(lwp) WRITE(numout,*) ' mathematical constant rpi = ', rpi 128 129 rsiyea = 365.25 * rday * 2. * rpi / 6.283076 130 rsiday = rday / ( 1. + rday / rsiyea ) 131 omega = 2. * rpi / rsiday 132 IF(lwp) WRITE(numout,*) 133 IF(lwp) WRITE(numout,*) ' day rday = ', rday, ' s' 134 IF(lwp) WRITE(numout,*) ' sideral year rsiyea = ', rsiyea, ' s' 135 IF(lwp) WRITE(numout,*) ' sideral day rsiday = ', rsiday, ' s' 136 IF(lwp) WRITE(numout,*) ' omega omega = ', omega, ' s-1' 137 138 IF(lwp) WRITE(numout,*) 139 IF(lwp) WRITE(numout,*) ' nb of months per year raamo = ', raamo, ' months' 140 IF(lwp) WRITE(numout,*) ' nb of hours per day rjjhh = ', rjjhh, ' hours' 141 IF(lwp) WRITE(numout,*) ' nb of minutes per hour rhhmm = ', rhhmm, ' mn' 142 IF(lwp) WRITE(numout,*) ' nb of seconds per minute rmmss = ', rmmss, ' s' 143 144 IF(lwp) WRITE(numout,*) 145 IF(lwp) WRITE(numout,*) ' earth radius ra = ', ra, ' m' 146 IF(lwp) WRITE(numout,*) ' gravity grav = ', grav , ' m/s^2' 147 148 IF(lwp) WRITE(numout,*) 149 IF(lwp) WRITE(numout,*) ' triple point of temperature rtt = ', rtt , ' K' 150 IF(lwp) WRITE(numout,*) ' freezing point of water rt0 = ', rt0 , ' K' 151 IF(lwp) WRITE(numout,*) ' melting point of snow rt0_snow = ', rt0_snow, ' K' 152 IF(lwp) WRITE(numout,*) ' melting point of ice rt0_ice = ', rt0_ice , ' K' 153 154 ro0cpr = 1. / ( rau0 * rcp ) 155 IF(lwp) WRITE(numout,*) 156 IF(lwp) WRITE(numout,*) ' volumic mass of pure water rauw = ', rauw, ' kg/m^3' 157 IF(lwp) WRITE(numout,*) ' volumic mass of reference rau0 = ', rau0, ' kg/m^3' 158 IF(lwp) WRITE(numout,*) ' ocean specific heat rcp = ', rcp 159 IF(lwp) WRITE(numout,*) ' 1. / ( rau0 * rcp ) = ro0cpr = ', ro0cpr 160 161 #if defined key_lim3 162 xlsn = lfus * rhosn ! volumetric latent heat fusion of snow [J/m3] 163 #else 164 lfus = xlsn / rhosn ! latent heat of fusion of fresh ice 165 #endif 166 167 IF(lwp) THEN 124 WRITE(numout,*) 125 WRITE(numout,*) ' Constants' 126 WRITE(numout,*) 127 WRITE(numout,*) ' mathematical constant rpi = ', rpi 128 WRITE(numout,*) ' day rday = ', rday, ' s' 129 WRITE(numout,*) ' sideral year rsiyea = ', rsiyea, ' s' 130 WRITE(numout,*) ' sideral day rsiday = ', rsiday, ' s' 131 WRITE(numout,*) ' omega omega = ', omega, ' s-1' 132 WRITE(numout,*) 133 WRITE(numout,*) ' nb of months per year raamo = ', raamo, ' months' 134 WRITE(numout,*) ' nb of hours per day rjjhh = ', rjjhh, ' hours' 135 WRITE(numout,*) ' nb of minutes per hour rhhmm = ', rhhmm, ' mn' 136 WRITE(numout,*) ' nb of seconds per minute rmmss = ', rmmss, ' s' 137 WRITE(numout,*) 138 WRITE(numout,*) ' earth radius ra = ', ra, ' m' 139 WRITE(numout,*) ' gravity grav = ', grav , ' m/s^2' 140 WRITE(numout,*) 141 WRITE(numout,*) ' triple point of temperature rtt = ', rtt , ' K' 142 WRITE(numout,*) ' freezing point of water rt0 = ', rt0 , ' K' 143 WRITE(numout,*) ' melting point of snow rt0_snow = ', rt0_snow, ' K' 144 WRITE(numout,*) ' melting point of ice rt0_ice = ', rt0_ice , ' K' 145 WRITE(numout,*) 146 WRITE(numout,*) ' ocean reference volumic mass rau0 = ', rau0 , ' kg/m^3' 147 WRITE(numout,*) ' ocean reference specific volume rau0r = ', rau0r, ' m^3/Kg' 148 WRITE(numout,*) ' ocean specific heat rcp = ', rcp 149 WRITE(numout,*) ' 1. / ( rau0 * rcp ) = ro0cpr = ', ro0cpr 168 150 WRITE(numout,*) 169 151 WRITE(numout,*) ' thermal conductivity of the snow = ', rcdsn , ' J/s/m/K' … … 189 171 WRITE(numout,*) ' von Karman constant = ', vkarmn 190 172 WRITE(numout,*) ' Stefan-Boltzmann constant = ', stefan , ' J/s/m^2/K^4' 191 192 173 WRITE(numout,*) 193 174 WRITE(numout,*) ' conversion: degre ==> radian rad = ', rad 194 195 175 WRITE(numout,*) 196 176 WRITE(numout,*) ' smallest real computer value rsmall = ', rsmall -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/DYN/dynspg_ts.F90
r1779 r2201 595 595 vn_b (:,:) = vn_b(:,:) * hvr(:,:) 596 596 ENDIF 597 IF( iom_varid( numror, 'sshn_b', ldstop = .FALSE. ) > 0 ) THEN 598 CALL iom_get( numror, jpdom_autoglo, 'sshn_b' , sshn_b (:,:) ) ! filtered extrenal ssh 599 ELSE 600 sshn_b(:,:)=sshb(:,:) ! if not in restart set previous time mean to current baroclinic before value 601 ENDIF 597 602 ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN 598 CALL iom_rstput( kt, nitrst, numrow, 'un_b' , un_b (:,:) ) ! external velocity issued 599 CALL iom_rstput( kt, nitrst, numrow, 'vn_b' , vn_b (:,:) ) ! from barotropic loop 603 CALL iom_rstput( kt, nitrst, numrow, 'un_b' , un_b (:,:) ) ! external velocity and ssh 604 CALL iom_rstput( kt, nitrst, numrow, 'vn_b' , vn_b (:,:) ) ! issued from barotropic loop 605 CALL iom_rstput( kt, nitrst, numrow, 'sshn_b' , sshn_b(:,:) ) ! 600 606 ENDIF 601 607 ! -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/IOM/iom_ioipsl.F90
r1488 r2201 81 81 iln = INDEX( cdname, '.nc' ) 82 82 IF( ldwrt ) THEN ! the file should be open in write mode so we create it... 83 IF( llclobber ) THEN ; clstatus = 'REPLACE '84 ELSE ; clstatus = 'NEW '83 IF( llclobber ) THEN ; clstatus = 'REPLACE 64' 84 ELSE ; clstatus = 'NEW 64' 85 85 ENDIF 86 86 IF( jpnij > 1 ) THEN -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/IOM/iom_nf90.F90
r1488 r2201 94 94 IF(lwp) WRITE(numout,*) TRIM(clinfo)//' create new file: '//TRIM(cdname)//' in WRITE mode' 95 95 96 IF( llclobber ) THEN ; imode = NF90_CLOBBER97 ELSE ; imode = NF90_NOCLOBBER96 IF( llclobber ) THEN ; imode = IOR( NF90_64BIT_OFFSET, NF90_CLOBBER ) 97 ELSE ; imode = IOR( NF90_64BIT_OFFSET, NF90_NOCLOBBER ) 98 98 ENDIF 99 99 CALL iom_nf90_check(NF90_CREATE( TRIM(cdname), imode, if90id, chunksize = ichunk ), clinfo) -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/IOM/prtctl.F90
r1613 r2201 120 120 IF( PRESENT(tab2d_1) ) ztab2d_1(:,:) = tab2d_1(:,:) 121 121 IF( PRESENT(tab2d_2) ) ztab2d_2(:,:) = tab2d_2(:,:) 122 IF( PRESENT(tab3d_1) ) ztab3d_1(:,:, :)= tab3d_1(:,:,:)123 IF( PRESENT(tab3d_2) ) ztab3d_2(:,:, :)= tab3d_2(:,:,:)122 IF( PRESENT(tab3d_1) ) ztab3d_1(:,:,1:kdir)= tab3d_1(:,:,:) 123 IF( PRESENT(tab3d_2) ) ztab3d_2(:,:,1:kdir)= tab3d_2(:,:,:) 124 124 IF( PRESENT(mask1) ) zmask1 (:,:,:)= mask1 (:,:,:) 125 125 IF( PRESENT(mask2) ) zmask2 (:,:,:)= mask2 (:,:,:) -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/LDF/ldfdyn_c1d.h90
r1152 r2201 27 27 28 28 !! * Local variables 29 INTEGER :: jk ! dummy loop indice 29 30 REAL(wp) :: zdam, zwam, zm00, zm01, zmhf, zmhs 30 31 REAL(wp) :: zahmf, zahms -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/OBC/obc_oce.F90
r1818 r2201 87 87 INTEGER :: nje1m2, nje0m1 !: do loop index in mpp case for jpjefm1-1,jpjed 88 88 89 REAL(wp), DIMENSION(jpj ed:jpjef) :: & !:89 REAL(wp), DIMENSION(jpj) :: & !: 90 90 sshfoe, & !: now climatology of the east boundary sea surface height 91 91 ubtfoe,vbtfoe !: now climatology of the east boundary barotropic transport … … 97 97 ! ! in the obcdyn.F90 routine 98 98 99 REAL(wp), DIMENSION(jp jed:jpjef,jpj) :: sshfoe_b !: east boundary ssh correction averaged over the barotropic loop100 ! 99 REAL(wp), DIMENSION(jpi,jpj) :: sshfoe_b !: east boundary ssh correction averaged over the barotropic loop 100 ! ! (if Flather's algoritm applied at open boundary) 101 101 102 102 !!------------------------------- … … 124 124 INTEGER :: njw1m2, njw0m1 !: do loop index in mpp case for jpjwfm2,jpjwd 125 125 126 REAL(wp), DIMENSION(jpj wd:jpjwf) :: & !:126 REAL(wp), DIMENSION(jpj) :: & !: 127 127 sshfow, & !: now climatology of the west boundary sea surface height 128 128 ubtfow,vbtfow !: now climatology of the west boundary barotropic transport … … 134 134 ! ! in the obcdyn.F90 routine 135 135 136 REAL(wp), DIMENSION(jp jwd:jpjwf,jpj) :: sshfow_b !: west boundary ssh correction averaged over the barotropic loop137 ! 136 REAL(wp), DIMENSION(jpi,jpj) :: sshfow_b !: west boundary ssh correction averaged over the barotropic loop 137 ! ! (if Flather's algoritm applied at open boundary) 138 138 139 139 !!------------------------------- … … 162 162 INTEGER :: njn0m1, njn1m1 !: do loop index in mpp case for jpnob-1 163 163 164 REAL(wp), DIMENSION(jpi nd:jpinf) :: & !:164 REAL(wp), DIMENSION(jpi) :: & !: 165 165 sshfon, & !: now climatology of the north boundary sea surface height 166 166 ubtfon,vbtfon !: now climatology of the north boundary barotropic transport … … 172 172 ! ! in yhe obcdyn.F90 routine 173 173 174 REAL(wp), DIMENSION(jpi nd:jpinf,jpj) :: sshfon_b !: north boundary ssh correction averaged over the barotropic loop175 ! 174 REAL(wp), DIMENSION(jpi,jpj) :: sshfon_b !: north boundary ssh correction averaged over the barotropic loop 175 ! ! (if Flather's algoritm applied at open boundary) 176 176 177 177 !!-------------------------------- … … 199 199 INTEGER :: njs0p1, njs1p1 !: do loop index in mpp case for jpsob+1 200 200 201 REAL(wp), DIMENSION(jpi sd:jpisf) :: & !:201 REAL(wp), DIMENSION(jpi) :: & !: 202 202 sshfos, & !: now climatology of the south boundary sea surface height 203 203 ubtfos,vbtfos !: now climatology of the south boundary barotropic transport … … 209 209 ! ! in the obcdyn.F90 routine 210 210 211 REAL(wp), DIMENSION(jpi sd:jpisf,jpj) :: sshfos_b !: south boundary ssh correction averaged over the barotropic loop212 ! 211 REAL(wp), DIMENSION(jpi,jpj) :: sshfos_b !: south boundary ssh correction averaged over the barotropic loop 212 ! ! (if Flather's algoritm applied at open boundary) 213 213 214 214 !!-------------------------------- -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/OBC/obc_par.F90
r1876 r2201 47 47 !! open boundary parameter 48 48 !!--------------------------------------------------------------------- 49 INTEGER :: & !: time dimension of the BCS fields on input49 INTEGER, PARAMETER :: & !: time dimension of the BCS fields on input 50 50 jptobc = 2 51 51 !! * EAST open boundary 52 LOGICAL :: & !:52 LOGICAL, PARAMETER :: & !: 53 53 lp_obc_east = .FALSE. !: to active or not the East open boundary 54 INTEGER :: & 54 INTEGER & 55 #if !defined key_agrif 56 , PARAMETER & 57 #endif 58 :: & 55 59 jpieob = jpiglo-2, & !: i-localization of the East open boundary (must be ocean U-point) 56 60 jpjed = 2, & !: j-starting indice of the East open boundary (must be land T-point) … … 60 64 61 65 !! * WEST open boundary 62 LOGICAL :: & !:66 LOGICAL, PARAMETER :: & !: 63 67 lp_obc_west = .FALSE. !: to active or not the West open boundary 64 INTEGER :: & !: 68 INTEGER & 69 #if !defined key_agrif 70 , PARAMETER & 71 #endif 72 :: & 65 73 jpiwob = 2, & !: i-localization of the West open boundary (must be ocean U-point) 66 74 jpjwd = 2, & !: j-starting indice of the West open boundary (must be land T-point) … … 70 78 71 79 !! * NORTH open boundary 72 LOGICAL :: & !:80 LOGICAL, PARAMETER :: & !: 73 81 lp_obc_north = .FALSE. !: to active or not the North open boundary 74 INTEGER :: & !: 82 INTEGER & 83 #if !defined key_agrif 84 , PARAMETER & 85 #endif 86 :: & 75 87 jpjnob = jpjglo-2, & !: j-localization of the North open boundary (must be ocean V-point) 76 88 jpind = 2, & !: i-starting indice of the North open boundary (must be land T-point) … … 80 92 81 93 !! * SOUTH open boundary 82 LOGICAL :: & !:94 LOGICAL, PARAMETER :: & !: 83 95 lp_obc_south = .FALSE. !: to active or not the South open boundary 84 INTEGER :: & !: 96 INTEGER & 97 #if !defined key_agrif 98 , PARAMETER & 99 #endif 100 :: & 85 101 jpjsob = 2, & !: j-localization of the South open boundary (must be ocean V-point) 86 102 jpisd = 2, & !: i-starting indice of the South open boundary (must be land T-point) -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/OBC/obcdta.F90
r1876 r2201 1 1 MODULE obcdta 2 !!==============================================================================3 !! *** MODULE obcdta ***4 !! Open boundary data : read the data for the open boundaries.5 !!==============================================================================2 !!============================================================================== 3 !! *** MODULE obcdta *** 4 !! Open boundary data : read the data for the open boundaries. 5 !!============================================================================== 6 6 #if defined key_obc 7 !!------------------------------------------------------------------------------ 8 !! 'key_obc' : Open Boundary Conditions 9 !!------------------------------------------------------------------------------ 10 !! obc_dta : read u, v, t, s data along each open boundary 11 !!------------------------------------------------------------------------------ 12 !! * Modules used 13 USE oce ! ocean dynamics and tracers 14 USE dom_oce ! ocean space and time domain 15 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 16 USE phycst ! physical constants 17 USE obc_oce ! ocean open boundary conditions 18 USE in_out_manager ! I/O logical units 19 USE lib_mpp ! distributed memory computing 20 USE dynspg_oce 21 USE ioipsl ! now only for ymds2ju function 22 USE iom ! 23 24 IMPLICIT NONE 25 PRIVATE 26 27 !! * Accessibility 28 PUBLIC obc_dta ! routines called by step.F90 29 PUBLIC obc_dta_bt ! routines called by dynspg_ts.F90 30 31 !! * Shared module variables 32 REAL(wp), DIMENSION(2) :: zjcnes_obc ! 33 REAL(wp), DIMENSION(:), ALLOCATABLE :: ztcobc 34 REAL(wp) :: rdt_obc 35 REAL(wp) :: zjcnes 36 INTEGER :: imm0, iyy0, idd0, iyy, imm, idd 37 INTEGER :: nt_a=2, nt_b=1, itobc, ndate0_cnes, nday_year0 38 INTEGER :: itobce, itobcw, itobcs, itobcn, itobc_b ! number of time steps in OBC files 39 40 INTEGER :: & 41 ntobc , & !: where we are in the obc file 42 ntobc_b , & !: first record used 43 ntobc_a !: second record used 44 45 CHARACTER (len=40) :: & ! name of data files 46 cl_obc_eTS , cl_obc_eU, & 47 cl_obc_wTS , cl_obc_wU, & 48 cl_obc_nTS , cl_obc_nV, & 49 cl_obc_sTS , cl_obc_sV 50 51 ! arrays used for interpolating time dependent data on the boundaries 52 REAL(wp), DIMENSION(jpj,jpk,jptobc) :: uedta, vedta, tedta, sedta ! East 53 REAL(wp), DIMENSION(jpj,jpk,jptobc) :: uwdta, vwdta, twdta, swdta ! West 54 REAL(wp), DIMENSION(jpi,jpk,jptobc) :: undta, vndta, tndta, sndta ! North 55 REAL(wp), DIMENSION(jpi,jpk,jptobc) :: usdta, vsdta, tsdta, ssdta ! South 56 57 LOGICAL, DIMENSION (jpj,jpk ) :: ltemsk=.TRUE., luemsk=.TRUE., lvemsk=.TRUE. ! boolean msks 58 LOGICAL, DIMENSION (jpj,jpk ) :: ltwmsk=.TRUE., luwmsk=.TRUE., lvwmsk=.TRUE. ! used for outliers 59 LOGICAL, DIMENSION (jpi,jpk ) :: ltnmsk=.TRUE., lunmsk=.TRUE., lvnmsk=.TRUE. ! checks 60 LOGICAL, DIMENSION (jpi,jpk ) :: ltsmsk=.TRUE., lusmsk=.TRUE., lvsmsk=.TRUE. 61 62 !! * Substitutions 7 !!------------------------------------------------------------------------------ 8 !! 'key_obc' : Open Boundary Conditions 9 !!------------------------------------------------------------------------------ 10 !! obc_dta : read u, v, t, s data along each open boundary 11 !!------------------------------------------------------------------------------ 12 !! * Modules used 13 USE oce ! ocean dynamics and tracers 14 USE dom_oce ! ocean space and time domain 15 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 16 USE phycst ! physical constants 17 USE obc_par ! ocean open boundary conditions 18 USE obc_oce ! ocean open boundary conditions 19 USE in_out_manager ! I/O logical units 20 USE lib_mpp ! distributed memory computing 21 USE dynspg_oce 22 USE ioipsl ! now only for ymds2ju function 23 USE iom ! 24 25 IMPLICIT NONE 26 PRIVATE 27 28 !! * Accessibility 29 PUBLIC obc_dta ! routines called by step.F90 30 PUBLIC obc_dta_bt ! routines called by dynspg_ts.F90 31 32 !! * Shared module variables 33 REAL(wp), DIMENSION(2) :: zjcnes_obc ! 34 REAL(wp), DIMENSION(:), ALLOCATABLE :: ztcobc 35 REAL(wp) :: rdt_obc 36 REAL(wp) :: zjcnes 37 INTEGER :: imm0, iyy0, idd0, iyy, imm, idd 38 INTEGER :: nt_a=2, nt_b=1, itobc, ndate0_cnes, nday_year0 39 INTEGER :: itobce, itobcw, itobcs, itobcn, itobc_b ! number of time steps in OBC files 40 41 INTEGER :: & 42 ntobc , & !: where we are in the obc file 43 ntobc_b , & !: first record used 44 ntobc_a !: second record used 45 46 CHARACTER (len=40) :: & ! name of data files 47 cl_obc_eTS , cl_obc_eU, & 48 cl_obc_wTS , cl_obc_wU, & 49 cl_obc_nTS , cl_obc_nV, & 50 cl_obc_sTS , cl_obc_sV 51 52 # if defined key_dynspg_ts 53 ! bt arrays for interpolating time dependent data on the boundaries 54 INTEGER :: nt_m=0, ntobc_m 55 REAL(wp), DIMENSION(jpj,0:jptobc) :: ubtedta, vbtedta, sshedta ! East 56 REAL(wp), DIMENSION(jpj,0:jptobc) :: ubtwdta, vbtwdta, sshwdta ! West 57 REAL(wp), DIMENSION(jpi,0:jptobc) :: ubtndta, vbtndta, sshndta ! North 58 REAL(wp), DIMENSION(jpi,0:jptobc) :: ubtsdta, vbtsdta, sshsdta ! South 59 ! arrays used for interpolating time dependent data on the boundaries 60 REAL(wp), DIMENSION(jpj,jpk,0:jptobc) :: uedta, vedta, tedta, sedta ! East 61 REAL(wp), DIMENSION(jpj,jpk,0:jptobc) :: uwdta, vwdta, twdta, swdta ! West 62 REAL(wp), DIMENSION(jpi,jpk,0:jptobc) :: undta, vndta, tndta, sndta ! North 63 REAL(wp), DIMENSION(jpi,jpk,0:jptobc) :: usdta, vsdta, tsdta, ssdta ! South 64 # else 65 ! bt arrays for interpolating time dependent data on the boundaries 66 REAL(wp), DIMENSION(jpj,jptobc) :: ubtedta, vbtedta, sshedta ! East 67 REAL(wp), DIMENSION(jpj,jptobc) :: ubtwdta, vbtwdta, sshwdta ! West 68 REAL(wp), DIMENSION(jpi,jptobc) :: ubtndta, vbtndta, sshndta ! North 69 REAL(wp), DIMENSION(jpi,jptobc) :: ubtsdta, vbtsdta, sshsdta ! South 70 ! arrays used for interpolating time dependent data on the boundaries 71 REAL(wp), DIMENSION(jpj,jpk,jptobc) :: uedta, vedta, tedta, sedta ! East 72 REAL(wp), DIMENSION(jpj,jpk,jptobc) :: uwdta, vwdta, twdta, swdta ! West 73 REAL(wp), DIMENSION(jpi,jpk,jptobc) :: undta, vndta, tndta, sndta ! North 74 REAL(wp), DIMENSION(jpi,jpk,jptobc) :: usdta, vsdta, tsdta, ssdta ! South 75 # endif 76 LOGICAL, DIMENSION (jpj,jpk ) :: ltemsk=.TRUE., luemsk=.TRUE., lvemsk=.TRUE. ! boolean msks 77 LOGICAL, DIMENSION (jpj,jpk ) :: ltwmsk=.TRUE., luwmsk=.TRUE., lvwmsk=.TRUE. ! used for outliers 78 LOGICAL, DIMENSION (jpi,jpk ) :: ltnmsk=.TRUE., lunmsk=.TRUE., lvnmsk=.TRUE. ! checks 79 LOGICAL, DIMENSION (jpi,jpk ) :: ltsmsk=.TRUE., lusmsk=.TRUE., lvsmsk=.TRUE. 80 81 !! * Substitutions 63 82 # include "obc_vectopt_loop_substitute.h90" 83 # include "domzgr_substitute.h90" 64 84 !!---------------------------------------------------------------------- 65 85 !! OPA 9.0 , LOCEAN-IPSL (2006) … … 70 90 CONTAINS 71 91 72 SUBROUTINE obc_dta( kt ) 73 !!--------------------------------------------------------------------------- 74 !! *** SUBROUTINE obc_dta *** 75 !! 76 !! ** Purpose : Find the climatological boundary arrays for the specified date, 77 !! The boundary arrays are netcdf files. Three possible cases: 78 !! - one time frame only in the file (time dimension = 1). 79 !! in that case the boundary data does not change in time. 80 !! - many time frames. In that case, if we have 12 frames 81 !! we assume monthly fields. 82 !! Else, we assume that time_counter is in seconds 83 !! since the beginning of either the current year or a reference 84 !! year given in the namelist. 85 !! (no check is done so far but one would have to check the "unit" 86 !! attribute of variable time_counter). 87 !! 88 !! 89 !! History : 90 !! ! 98-05 (J.M. Molines) Original code 91 !! 8.5 ! 02-10 (C. Talandier, A-M. Treguier) Free surface, F90 92 !! 93 !! 9.0 ! 04-06 (F. Durand, A-M. Treguier) Netcdf BC files on input 94 !! ! 2007-2008 (C. Langlais, P. Mathiot, J.M. Molines) high frequency boundaries data 95 !!--------------------------------------------------------------------------- 96 !! * Arguments 97 INTEGER, INTENT( in ) :: kt ! ocean time-step index 98 99 !! * Local declarations 100 INTEGER :: ji, jj, jk, ii, ij ,it ! dummy loop indices 101 INTEGER :: ikprint ! frequency for printouts. 102 INTEGER, SAVE :: immfile, iyyfile ! 103 INTEGER :: nt ! record indices (incrementation) 104 INTEGER :: istop ! local error check 105 106 REAL(wp) :: zxy, znum, zden ! time interpolation weight 107 108 ! variables for the julian day calculation 109 INTEGER :: iyear, imonth, iday 110 REAL(wp) :: zsec , zjulian, zjuliancnes 111 112 ! IOM STUFF 113 INTEGER :: idvar, id_e, id_w, id_n, id_s, id_x ! file identifiers 114 INTEGER, DIMENSION(1) :: itmp 115 CHARACTER(LEN=25) :: cl_vname 116 117 !!--------------------------------------------------------------------------- 118 119 ! 0. initialisation : 120 ! -------------------- 121 IF ( kt == nit000 ) CALL obc_dta_ini ( kt ) 122 IF ( nobc_dta == 0 ) RETURN ! already done in obc_dta_ini 123 IF ( itobc == 1 ) RETURN ! case of only one time frame in file done in obc_dta_ini 124 125 ! in the following code, we assume that obc data are read from files, with more than 1 time frame in it 126 127 iyyfile=iyy ; immfile = 00 ! set component of the current file name 128 IF ( cffile /= 'annual') immfile = imm ! 129 IF ( ln_obc_clim ) iyyfile = 0000 ! assume that climatological files are labeled y0000 130 131 ! 1. Synchronize time of run with time of data files 132 !--------------------------------------------------- 133 ! nday_year is the day number in the current year ( 1 for 01/01 ) 134 zsec=MOD( (kt-nit000)*rdt - (nday_year - nday_year0 )*rday, rday ) ! number of seconds in the current day 135 IF (ln_obc_clim) THEN 136 zjcnes = nday_year - 1 + zsec/rday 137 ELSE 138 zjcnes = zjcnes + rdt/rday 139 ENDIF 140 141 ! look for 'before' record number in the current file 142 ntobc = nrecbef () ! this function return the record number for 'before', relative to zjcnes 143 144 IF (MOD(kt-1,10)==0) THEN 145 IF (lwp) WRITE(numout,*) 'kt= ',kt,' zjcnes =', zjcnes,' ndastp =',ndastp, 'mm =',imm 146 END IF 147 148 ! 2. read a new data if necessary 149 !-------------------------------- 150 IF ( ntobc /= ntobc_b ) THEN 151 ! we need to read the 'after' record 152 ! swap working index: 153 nt=nt_b ; nt_b=nt_a ; nt_a=nt 154 ntobc_b = ntobc 155 156 ! new record number : 157 ntobc_a = ntobc_a + 1 158 159 ! all tricky things related to record number, changing files etc... are managed by obc_read 160 161 CALL obc_read (kt, nt_a, ntobc_a, iyyfile, immfile ) 162 163 ! update zjcnes_obc 164 zjcnes_obc(nt_b)= ztcobc(ntobc_b) 165 zjcnes_obc(nt_a)= ztcobc(ntobc_a) 166 ENDIF 167 168 ! 3. interpolation at each time step 169 ! ------------------------------------ 170 IF ( ln_obc_clim) THEN 171 znum= MOD(zjcnes - zjcnes_obc(nt_b), REAL(nyear_len(1),wp) ) ; IF ( znum < 0 ) znum = znum + REAL(nyear_len(1),wp) 172 zden= MOD(zjcnes_obc(nt_a) - zjcnes_obc(nt_b), REAL(nyear_len(1),wp) ) ; IF ( zden < 0 ) zden = zden + REAL(nyear_len(1),wp) 173 ELSE 174 znum= zjcnes - zjcnes_obc(nt_b) 175 zden= zjcnes_obc(nt_a) - zjcnes_obc(nt_b) 176 ENDIF 177 zxy = znum / zden 178 179 IF( lp_obc_east ) THEN 180 ! fills sfoe, tfoe, ufoe ,vfoe 181 sfoe(:,:) = zxy * sedta (:,:,nt_a) + (1. - zxy)*sedta(:,:,nt_b) 182 tfoe(:,:) = zxy * tedta (:,:,nt_a) + (1. - zxy)*tedta(:,:,nt_b) 183 ufoe(:,:) = zxy * uedta (:,:,nt_a) + (1. - zxy)*uedta(:,:,nt_b) 184 vfoe(:,:) = zxy * vedta (:,:,nt_a) + (1. - zxy)*vedta(:,:,nt_b) 185 ENDIF 186 187 IF( lp_obc_west) THEN 188 ! fills sfow, tfow, ufow ,vfow 189 sfow(:,:) = zxy * swdta (:,:,nt_a) + (1. - zxy)*swdta(:,:,nt_b) 190 tfow(:,:) = zxy * twdta (:,:,nt_a) + (1. - zxy)*twdta(:,:,nt_b) 191 ufow(:,:) = zxy * uwdta (:,:,nt_a) + (1. - zxy)*uwdta(:,:,nt_b) 192 vfow(:,:) = zxy * vwdta (:,:,nt_a) + (1. - zxy)*vwdta(:,:,nt_b) 193 ENDIF 194 195 IF( lp_obc_north) THEN 196 ! fills sfon, tfon, ufon ,vfon 197 sfon(:,:) = zxy * sndta (:,:,nt_a) + (1. - zxy)*sndta(:,:,nt_b) 198 tfon(:,:) = zxy * tndta (:,:,nt_a) + (1. - zxy)*tndta(:,:,nt_b) 199 ufon(:,:) = zxy * undta (:,:,nt_a) + (1. - zxy)*undta(:,:,nt_b) 200 vfon(:,:) = zxy * vndta (:,:,nt_a) + (1. - zxy)*vndta(:,:,nt_b) 201 ENDIF 202 203 IF( lp_obc_south) THEN 204 ! fills sfos, tfos, ufos ,vfos 205 sfos(:,:) = zxy * ssdta (:,:,nt_a) + (1. - zxy)*ssdta(:,:,nt_b) 206 tfos(:,:) = zxy * tsdta (:,:,nt_a) + (1. - zxy)*tsdta(:,:,nt_b) 207 ufos(:,:) = zxy * usdta (:,:,nt_a) + (1. - zxy)*usdta(:,:,nt_b) 208 vfos(:,:) = zxy * vsdta (:,:,nt_a) + (1. - zxy)*vsdta(:,:,nt_b) 209 ENDIF 210 END SUBROUTINE obc_dta 211 212 213 SUBROUTINE obc_dta_ini (kt) 214 !!----------------------------------------------------------------------------- 215 !! *** SUBROUTINE obc_dta_ini *** 216 !! 217 !! ** Purpose : 218 !! When obc_dta first call, realize some data initialization 219 !! 220 !! ** Method : 221 !! 222 !! History : 223 !! 9.0 ! 07-10 (J.M. Molines ) 224 !!---------------------------------------------------------------------------- 225 !! * Argument 226 INTEGER, INTENT(in) :: kt ! ocean time-step index 227 228 !! * Local declarations 229 INTEGER :: ji,jj, it ! dummy loop indices 230 231 REAL(wp) :: zxy ! time interpolation weight 232 233 INTEGER :: ikprint ! frequency for printouts. 234 235 INTEGER, SAVE :: immfile, iyyfile ! 236 INTEGER :: nt ! record indices (incrementation) 237 INTEGER :: istop ! local error check 238 239 ! variables for the julian day calculation 240 INTEGER :: iyear, imonth, iday 241 REAL(wp) :: zsec , zjulian, zjuliancnes 242 243 ! IOM STUFF 244 INTEGER :: idvar, id_e, id_w, id_n, id_s, id_x ! file identifiers 245 INTEGER, DIMENSION(1) :: itmp 246 CHARACTER(LEN=25) :: cl_vname 247 248 IF(lwp) WRITE(numout,*) 249 IF(lwp) WRITE(numout,*) 'obc_dta : find boundary data' 250 IF(lwp) WRITE(numout,*) '~~~~~~~' 251 IF (lwp) THEN 252 IF ( nobc_dta == 0 ) THEN 253 WRITE(numout,*) ' OBC data taken from initial conditions.' 254 ELSE 255 WRITE(numout,*) ' OBC data taken from netcdf files.' 256 ENDIF 257 ENDIF 258 nday_year0 = nday_year ! to remember the day when kt=nit000 259 260 sedta(:,:,:) = 0.e0 ; tedta(:,:,:) = 0.e0 ; uedta(:,:,:) = 0.e0 ; vedta(:,:,:) = 0.e0 ! East 261 swdta(:,:,:) = 0.e0 ; twdta(:,:,:) = 0.e0 ; uwdta(:,:,:) = 0.e0 ; vwdta(:,:,:) = 0.e0 ! West 262 sndta(:,:,:) = 0.e0 ; tndta(:,:,:) = 0.e0 ; undta(:,:,:) = 0.e0 ; vndta(:,:,:) = 0.e0 ! North 263 ssdta(:,:,:) = 0.e0 ; tsdta(:,:,:) = 0.e0 ; usdta(:,:,:) = 0.e0 ; vsdta(:,:,:) = 0.e0 ! South 264 265 sfoe(:,:) = 0.e0 ; tfoe(:,:) = 0.e0 ; ufoe(:,:) = 0.e0 ; vfoe(:,:) = 0.e0 ! East 266 sfow(:,:) = 0.e0 ; tfow(:,:) = 0.e0 ; ufow(:,:) = 0.e0 ; vfow(:,:) = 0.e0 ! West 267 sfon(:,:) = 0.e0 ; tfon(:,:) = 0.e0 ; ufon(:,:) = 0.e0 ; vfon(:,:) = 0.e0 ! North 268 sfos(:,:) = 0.e0 ; tfos(:,:) = 0.e0 ; ufos(:,:) = 0.e0 ; vfos(:,:) = 0.e0 ! South 269 270 IF (nobc_dta == 0 ) THEN ! boundary data are the initial data of this run (set only at nit000) 271 IF (lp_obc_east) THEN ! East 272 DO ji = nie0 , nie1 273 sfoe(nje0p1:nje1m1,:) = temsk(nje0p1:nje1m1,:) * sn (ji+1 , nje0p1:nje1m1 , :) 274 tfoe(nje0p1:nje1m1,:) = temsk(nje0p1:nje1m1,:) * tn (ji+1 , nje0p1:nje1m1 , :) 275 ufoe(nje0p1:nje1m1,:) = uemsk(nje0p1:nje1m1,:) * un (ji , nje0p1:nje1m1 , :) 276 vfoe(nje0p1:nje1m1,:) = vemsk(nje0p1:nje1m1,:) * vn (ji+1 , nje0p1:nje1m1 , :) 277 END DO 278 ENDIF 279 280 IF (lp_obc_west) THEN ! West 281 DO ji = niw0 , niw1 282 sfow(njw0p1:njw1m1,:) = twmsk(njw0p1:njw1m1,:) * sn (ji , njw0p1:njw1m1 , :) 283 tfow(njw0p1:njw1m1,:) = twmsk(njw0p1:njw1m1,:) * tn (ji , njw0p1:njw1m1 , :) 284 ufow(njw0p1:njw1m1,:) = uwmsk(njw0p1:njw1m1,:) * un (ji , njw0p1:njw1m1 , :) 285 vfow(njw0p1:njw1m1,:) = vwmsk(njw0p1:njw1m1,:) * vn (ji , njw0p1:njw1m1 , :) 286 END DO 287 ENDIF 288 289 IF (lp_obc_north) THEN ! North 290 DO jj = njn0 , njn1 291 sfon(nin0p1:nin1m1,:) = tnmsk(nin0p1:nin1m1,:) * sn (nin0p1:nin1m1 , jj+1 , :) 292 tfon(nin0p1:nin1m1,:) = tnmsk(nin0p1:nin1m1,:) * tn (nin0p1:nin1m1 , jj+1 , :) 293 ufon(nin0p1:nin1m1,:) = unmsk(nin0p1:nin1m1,:) * un (nin0p1:nin1m1 , jj+1 , :) 294 vfon(nin0p1:nin1m1,:) = vnmsk(nin0p1:nin1m1,:) * vn (nin0p1:nin1m1 , jj , :) 295 END DO 296 ENDIF 297 298 IF (lp_obc_south) THEN ! South 299 DO jj = njs0 , njs1 300 sfos(nis0p1:nis1m1,:) = tsmsk(nis0p1:nis1m1,:) * sn (nis0p1:nis1m1 , jj , :) 301 tfos(nis0p1:nis1m1,:) = tsmsk(nis0p1:nis1m1,:) * tn (nis0p1:nis1m1 , jj , :) 302 ufos(nis0p1:nis1m1,:) = usmsk(nis0p1:nis1m1,:) * un (nis0p1:nis1m1 , jj , :) 303 vfos(nis0p1:nis1m1,:) = vsmsk(nis0p1:nis1m1,:) * vn (nis0p1:nis1m1 , jj , :) 304 END DO 305 ENDIF 306 RETURN ! exit the routine all is done 307 ENDIF ! nobc_dta = 0 92 SUBROUTINE obc_dta( kt ) 93 !!--------------------------------------------------------------------------- 94 !! *** SUBROUTINE obc_dta *** 95 !! 96 !! ** Purpose : Find the climatological boundary arrays for the specified date, 97 !! The boundary arrays are netcdf files. Three possible cases: 98 !! - one time frame only in the file (time dimension = 1). 99 !! in that case the boundary data does not change in time. 100 !! - many time frames. In that case, if we have 12 frames 101 !! we assume monthly fields. 102 !! Else, we assume that time_counter is in seconds 103 !! since the beginning of either the current year or a reference 104 !! year given in the namelist. 105 !! (no check is done so far but one would have to check the "unit" 106 !! attribute of variable time_counter). 107 !! 108 !! 109 !! History : 110 !! ! 98-05 (J.M. Molines) Original code 111 !! 8.5 ! 02-10 (C. Talandier, A-M. Treguier) Free surface, F90 112 !! 113 !! 9.0 ! 04-06 (F. Durand, A-M. Treguier) Netcdf BC files on input 114 !! ! 2007-2008 (C. Langlais, P. Mathiot, J.M. Molines) high frequency boundaries data 115 !!--------------------------------------------------------------------------- 116 !! * Arguments 117 INTEGER, INTENT( in ) :: kt ! ocean time-step index 118 119 !! * Local declarations 120 INTEGER, SAVE :: immfile, iyyfile ! 121 INTEGER :: nt ! record indices (incrementation) 122 REAL(wp) :: zsec, zxy, znum, zden ! time interpolation weight 123 124 !!--------------------------------------------------------------------------- 125 126 ! 0. initialisation : 127 ! -------------------- 128 IF ( kt == nit000 ) CALL obc_dta_ini ( kt ) 129 IF ( nobc_dta == 0 ) RETURN ! already done in obc_dta_ini 130 IF ( itobc == 1 ) RETURN ! case of only one time frame in file done in obc_dta_ini 131 132 ! in the following code, we assume that obc data are read from files, with more than 1 time frame in it 133 134 iyyfile=iyy ; immfile = 00 ! set component of the current file name 135 IF ( cffile /= 'annual') immfile = imm ! 136 IF ( ln_obc_clim ) iyyfile = 0000 ! assume that climatological files are labeled y0000 137 138 ! 1. Synchronize time of run with time of data files 139 !--------------------------------------------------- 140 ! nday_year is the day number in the current year ( 1 for 01/01 ) 141 zsec=MOD( (kt-nit000)*rdt - (nday_year - nday_year0 )*rday, rday ) ! number of seconds in the current day 142 IF (ln_obc_clim) THEN 143 zjcnes = nday_year - 1 + zsec/rday 144 ELSE 145 zjcnes = zjcnes + rdt/rday 146 ENDIF 147 148 ! look for 'before' record number in the current file 149 ntobc = nrecbef () ! this function return the record number for 'before', relative to zjcnes 150 151 IF (MOD(kt-1,10)==0) THEN 152 IF (lwp) WRITE(numout,*) 'kt= ',kt,' zjcnes =', zjcnes,' ndastp =',ndastp, 'mm =',imm 153 END IF 154 155 ! 2. read a new data if necessary 156 !-------------------------------- 157 IF ( ntobc /= ntobc_b ) THEN 158 ! we need to read the 'after' record 159 ! swap working index: 160 # if defined key_dynspg_ts 161 nt=nt_m ; nt_m=nt_b ; nt_b=nt 162 # endif 163 nt=nt_b ; nt_b=nt_a ; nt_a=nt 164 ntobc_b = ntobc 165 166 ! new record number : 167 ntobc_a = ntobc_a + 1 168 169 ! all tricky things related to record number, changing files etc... are managed by obc_read 170 171 CALL obc_read (kt, nt_a, ntobc_a, iyyfile, immfile ) 172 173 ! update zjcnes_obc 174 # if defined key_dynspg_ts 175 ntobc_m=mod(ntobc_b-2+itobc,itobc)+1 176 zjcnes_obc(nt_m)= ztcobc(ntobc_m) 177 # endif 178 zjcnes_obc(nt_b)= ztcobc(ntobc_b) 179 zjcnes_obc(nt_a)= ztcobc(ntobc_a) 180 ENDIF 181 182 ! 3. interpolation at each time step 183 ! ------------------------------------ 184 IF( ln_obc_clim) THEN 185 znum= MOD(zjcnes - zjcnes_obc(nt_b), REAL(nyear_len(1),wp) ) 186 IF( znum < 0 ) znum = znum + REAL(nyear_len(1),wp) 187 zden= MOD(zjcnes_obc(nt_a) - zjcnes_obc(nt_b), REAL(nyear_len(1),wp) ) 188 IF( zden < 0 ) zden = zden + REAL(nyear_len(1),wp) 189 ELSE 190 znum= zjcnes - zjcnes_obc(nt_b) 191 zden= zjcnes_obc(nt_a) - zjcnes_obc(nt_b) 192 ENDIF 193 zxy = znum / zden 194 195 IF( lp_obc_east ) THEN 196 ! fills sfoe, tfoe, ufoe ,vfoe 197 sfoe(:,:) = zxy * sedta (:,:,nt_a) + (1. - zxy)*sedta(:,:,nt_b) 198 tfoe(:,:) = zxy * tedta (:,:,nt_a) + (1. - zxy)*tedta(:,:,nt_b) 199 ufoe(:,:) = zxy * uedta (:,:,nt_a) + (1. - zxy)*uedta(:,:,nt_b) 200 vfoe(:,:) = zxy * vedta (:,:,nt_a) + (1. - zxy)*vedta(:,:,nt_b) 201 ENDIF 202 203 IF( lp_obc_west) THEN 204 ! fills sfow, tfow, ufow ,vfow 205 sfow(:,:) = zxy * swdta (:,:,nt_a) + (1. - zxy)*swdta(:,:,nt_b) 206 tfow(:,:) = zxy * twdta (:,:,nt_a) + (1. - zxy)*twdta(:,:,nt_b) 207 ufow(:,:) = zxy * uwdta (:,:,nt_a) + (1. - zxy)*uwdta(:,:,nt_b) 208 vfow(:,:) = zxy * vwdta (:,:,nt_a) + (1. - zxy)*vwdta(:,:,nt_b) 209 ENDIF 210 211 IF( lp_obc_north) THEN 212 ! fills sfon, tfon, ufon ,vfon 213 sfon(:,:) = zxy * sndta (:,:,nt_a) + (1. - zxy)*sndta(:,:,nt_b) 214 tfon(:,:) = zxy * tndta (:,:,nt_a) + (1. - zxy)*tndta(:,:,nt_b) 215 ufon(:,:) = zxy * undta (:,:,nt_a) + (1. - zxy)*undta(:,:,nt_b) 216 vfon(:,:) = zxy * vndta (:,:,nt_a) + (1. - zxy)*vndta(:,:,nt_b) 217 ENDIF 218 219 IF( lp_obc_south) THEN 220 ! fills sfos, tfos, ufos ,vfos 221 sfos(:,:) = zxy * ssdta (:,:,nt_a) + (1. - zxy)*ssdta(:,:,nt_b) 222 tfos(:,:) = zxy * tsdta (:,:,nt_a) + (1. - zxy)*tsdta(:,:,nt_b) 223 ufos(:,:) = zxy * usdta (:,:,nt_a) + (1. - zxy)*usdta(:,:,nt_b) 224 vfos(:,:) = zxy * vsdta (:,:,nt_a) + (1. - zxy)*vsdta(:,:,nt_b) 225 ENDIF 226 END SUBROUTINE obc_dta 227 228 229 SUBROUTINE obc_dta_ini (kt) 230 !!----------------------------------------------------------------------------- 231 !! *** SUBROUTINE obc_dta_ini *** 232 !! 233 !! ** Purpose : 234 !! When obc_dta first call, realize some data initialization 235 !! 236 !! ** Method : 237 !! 238 !! History : 239 !! 9.0 ! 07-10 (J.M. Molines ) 240 !!---------------------------------------------------------------------------- 241 !! * Argument 242 INTEGER, INTENT(in) :: kt ! ocean time-step index 243 244 !! * Local declarations 245 INTEGER :: ji, jj ! dummy loop indices 246 INTEGER, SAVE :: immfile, iyyfile ! 247 248 ! variables for the julian day calculation 249 INTEGER :: iyear, imonth, iday 250 REAL(wp) :: zsec , zjulian, zjuliancnes 251 252 IF(lwp) WRITE(numout,*) 253 IF(lwp) WRITE(numout,*) 'obc_dta : find boundary data' 254 IF(lwp) WRITE(numout,*) '~~~~~~~' 255 IF (lwp) THEN 256 IF ( nobc_dta == 0 ) THEN 257 WRITE(numout,*) ' OBC data taken from initial conditions.' 258 ELSE 259 WRITE(numout,*) ' OBC data taken from netcdf files.' 260 ENDIF 261 ENDIF 262 nday_year0 = nday_year ! to remember the day when kt=nit000 263 264 sedta(:,:,:) = 0.e0 ; tedta(:,:,:) = 0.e0 ; uedta(:,:,:) = 0.e0 ; vedta(:,:,:) = 0.e0 ! East 265 swdta(:,:,:) = 0.e0 ; twdta(:,:,:) = 0.e0 ; uwdta(:,:,:) = 0.e0 ; vwdta(:,:,:) = 0.e0 ! West 266 sndta(:,:,:) = 0.e0 ; tndta(:,:,:) = 0.e0 ; undta(:,:,:) = 0.e0 ; vndta(:,:,:) = 0.e0 ! North 267 ssdta(:,:,:) = 0.e0 ; tsdta(:,:,:) = 0.e0 ; usdta(:,:,:) = 0.e0 ; vsdta(:,:,:) = 0.e0 ! South 268 269 sfoe(:,:) = 0.e0 ; tfoe(:,:) = 0.e0 ; ufoe(:,:) = 0.e0 ; vfoe(:,:) = 0.e0 ! East 270 sfow(:,:) = 0.e0 ; tfow(:,:) = 0.e0 ; ufow(:,:) = 0.e0 ; vfow(:,:) = 0.e0 ! West 271 sfon(:,:) = 0.e0 ; tfon(:,:) = 0.e0 ; ufon(:,:) = 0.e0 ; vfon(:,:) = 0.e0 ! North 272 sfos(:,:) = 0.e0 ; tfos(:,:) = 0.e0 ; ufos(:,:) = 0.e0 ; vfos(:,:) = 0.e0 ! South 273 274 IF (nobc_dta == 0 ) THEN ! boundary data are the initial data of this run (set only at nit000) 275 IF (lp_obc_east) THEN ! East 276 DO ji = nie0 , nie1 277 sfoe(nje0:nje1,:) = temsk(nje0:nje1,:) * sn (ji+1 , nje0:nje1 , :) * tmask(ji+1,nje0:nje1 , :) 278 tfoe(nje0:nje1,:) = temsk(nje0:nje1,:) * tn (ji+1 , nje0:nje1 , :) * tmask(ji+1,nje0:nje1 , :) 279 ufoe(nje0:nje1,:) = uemsk(nje0:nje1,:) * un (ji , nje0:nje1 , :) * umask(ji, nje0:nje1 , :) 280 vfoe(nje0:nje1,:) = vemsk(nje0:nje1,:) * vn (ji+1 , nje0:nje1 , :) * vmask(ji+1,nje0:nje1 , :) 281 END DO 282 ENDIF 283 284 IF (lp_obc_west) THEN ! West 285 DO ji = niw0 , niw1 286 sfow(njw0:njw1,:) = twmsk(njw0:njw1,:) * sn (ji , njw0:njw1 , :) * tmask(ji , njw0:njw1 , :) 287 tfow(njw0:njw1,:) = twmsk(njw0:njw1,:) * tn (ji , njw0:njw1 , :) * tmask(ji , njw0:njw1 , :) 288 ufow(njw0:njw1,:) = uwmsk(njw0:njw1,:) * un (ji , njw0:njw1 , :) * umask(ji , njw0:njw1 , :) 289 vfow(njw0:njw1,:) = vwmsk(njw0:njw1,:) * vn (ji , njw0:njw1 , :) * vmask(ji , njw0:njw1 , :) 290 END DO 291 ENDIF 292 293 IF (lp_obc_north) THEN ! North 294 DO jj = njn0 , njn1 295 sfon(nin0:nin1,:) = tnmsk(nin0:nin1,:) * sn (nin0:nin1 , jj+1 , :) * tmask(nin0:nin1 , jj+1 , :) 296 tfon(nin0:nin1,:) = tnmsk(nin0:nin1,:) * tn (nin0:nin1 , jj+1 , :) * tmask(nin0:nin1 , jj+1 , :) 297 ufon(nin0:nin1,:) = unmsk(nin0:nin1,:) * un (nin0:nin1 , jj+1 , :) * umask(nin0:nin1 , jj+1 , :) 298 vfon(nin0:nin1,:) = vnmsk(nin0:nin1,:) * vn (nin0:nin1 , jj , :) * vmask(nin0:nin1 , jj , :) 299 END DO 300 ENDIF 301 302 IF (lp_obc_south) THEN ! South 303 DO jj = njs0 , njs1 304 sfos(nis0:nis1,:) = tsmsk(nis0:nis1,:) * sn (nis0:nis1 , jj , :) * tmask(nis0:nis1 , jj , :) 305 tfos(nis0:nis1,:) = tsmsk(nis0:nis1,:) * tn (nis0:nis1 , jj , :) * tmask(nis0:nis1 , jj , :) 306 ufos(nis0:nis1,:) = usmsk(nis0:nis1,:) * un (nis0:nis1 , jj , :) * umask(nis0:nis1 , jj , :) 307 vfos(nis0:nis1,:) = vsmsk(nis0:nis1,:) * vn (nis0:nis1 , jj , :) * vmask(nis0:nis1 , jj , :) 308 END DO 309 ENDIF 310 RETURN ! exit the routine all is done 311 ENDIF ! nobc_dta = 0 308 312 309 313 !!!! In the following OBC data are read from files. 310 ! all logical-mask are initialzed to true when declared 311 WHERE ( temsk == 0 ) ltemsk=.FALSE. 312 WHERE ( uemsk == 0 ) luemsk=.FALSE. 313 WHERE ( vemsk == 0 ) lvemsk=.FALSE. 314 315 WHERE ( twmsk == 0 ) ltwmsk=.FALSE. 316 WHERE ( uwmsk == 0 ) luwmsk=.FALSE. 317 WHERE ( vwmsk == 0 ) lvwmsk=.FALSE. 318 319 WHERE ( tnmsk == 0 ) ltnmsk=.FALSE. 320 WHERE ( unmsk == 0 ) lunmsk=.FALSE. 321 WHERE ( vnmsk == 0 ) lvnmsk=.FALSE. 322 323 WHERE ( tsmsk == 0 ) ltsmsk=.FALSE. 324 WHERE ( usmsk == 0 ) lusmsk=.FALSE. 325 WHERE ( vsmsk == 0 ) lvsmsk=.FALSE. 326 327 iyear=1950; imonth=01; iday=01; zsec=0. 328 ! zjuliancnes : julian day corresonding to 01/01/1950 329 CALL ymds2ju(iyear, imonth, iday,zsec , zjuliancnes) 330 331 !current year and curent month 332 iyy=INT(ndastp/10000) ; imm=INT((ndastp -iyy*10000)/100) ; idd=(ndastp-iyy*10000-imm*100) 333 IF (iyy < 1900) iyy = iyy+1900 ! always assume that years are on 4 digits. 334 CALL ymds2ju(iyy, imm, idd ,zsec , zjulian) 335 ndate0_cnes = zjulian - zjuliancnes ! jcnes day when call to obc_dta_ini 336 337 iyyfile=iyy ; immfile=0 ! set component of the current file name 338 IF ( cffile /= 'annual') immfile=imm 339 IF ( ln_obc_clim) iyyfile = 0 ! assume that climatological files are labeled y0000 340 341 CALL obc_dta_chktime ( iyyfile, immfile ) 342 343 IF ( itobc == 1 ) THEN 344 ! in this case we will provide boundary data only once. 345 nt_a=1 ; ntobc_a=1 346 CALL obc_read (nit000, nt_a, ntobc_a, iyyfile, immfile) 347 IF( lp_obc_east ) THEN 348 ! fills sfoe, tfoe, ufoe ,vfoe 349 sfoe(:,:) = sedta (:,:,1) ; tfoe(:,:) = tedta (:,:,1) 350 ufoe(:,:) = uedta (:,:,1) ; vfoe(:,:) = vedta (:,:,1) 351 ENDIF 352 353 IF( lp_obc_west) THEN 354 ! fills sfow, tfow, ufow ,vfow 355 sfow(:,:) = swdta (:,:,1) ; tfow(:,:) = twdta (:,:,1) 356 ufow(:,:) = uwdta (:,:,1) ; vfow(:,:) = vwdta (:,:,1) 357 ENDIF 358 359 IF( lp_obc_north) THEN 360 ! fills sfon, tfon, ufon ,vfon 361 sfon(:,:) = sndta (:,:,1) ; tfon(:,:) = tndta (:,:,1) 362 ufon(:,:) = undta (:,:,1) ; vfon(:,:) = vndta (:,:,1) 363 ENDIF 364 365 IF( lp_obc_south) THEN 366 ! fills sfos, tfos, ufos ,vfos 367 sfos(:,:) = ssdta (:,:,1) ; tfos(:,:) = tsdta (:,:,1) 368 ufos(:,:) = usdta (:,:,1) ; vfos(:,:) = vsdta (:,:,1) 369 ENDIF 370 RETURN ! we go out of obc_dta_ini -------------------------------------->>>>> 371 ENDIF 372 373 ! nday_year is the day number in the current year ( 1 for 01/01 ) 374 ! we suppose that we always start from the begining of a day 375 ! zsec=MOD( (kt-nit000)*rdt - (nday_year - nday_year0 )*rday, rday ) ! number of seconds in the current day 376 zsec=0.e0 ! here, kt=nit000, nday_year = ndat_year0 377 378 IF (ln_obc_clim) THEN 379 zjcnes = nday_year - 1 + zsec/rday ! for clim file time is in days in a year 380 ELSE 381 zjcnes = ndate0_cnes + (nday_year - nday_year0 ) + zsec/rday 382 ENDIF 383 384 ! look for 'before' record number in the current file 385 ntobc = nrecbef () 386 387 IF (lwp) WRITE(numout,*) 'obc files frequency :',cffile 388 IF (lwp) WRITE(numout,*) ' zjcnes0 =',zjcnes,' ndastp0 =',ndastp 389 IF (lwp) WRITE(numout,*) ' annee0 ',iyy,' month0 ', imm,' day0 ', idd 390 IF (lwp) WRITE(numout,*) 'first file open :',cl_obc_nTS 391 392 ! record initialisation 393 !-------------------- 394 nt_b = 1 ; nt_a = 2 395 396 ntobc_a = ntobc + 1 397 ntobc_b = ntobc 398 399 CALL obc_read (kt, nt_b, ntobc_b, iyyfile, immfile) ! read 'before' fields 400 CALL obc_read (kt, nt_a, ntobc_a, iyyfile, immfile) ! read 'after' fields 401 402 zjcnes_obc(nt_b)= ztcobc(ntobc_b) 403 zjcnes_obc(nt_a)= ztcobc(ntobc_a) 404 ! 405 END SUBROUTINE obc_dta_ini 406 407 408 SUBROUTINE obc_dta_chktime (kyyfile, kmmfile) 409 ! 410 ! check the number of time steps in the files and read ztcobc 411 ! 412 ! * Arguments 413 INTEGER, INTENT(in) :: kyyfile, kmmfile 414 ! * local variables 415 INTEGER :: istop ! error control 416 INTEGER :: ji ! dummy loop index 417 418 INTEGER :: idvar, id_e, id_w, id_n, id_s, id_x ! file identifiers 419 INTEGER, DIMENSION(1) :: itmp 420 CHARACTER(LEN=25) :: cl_vname 421 422 ntobc_a = 0; itobce =0 ; itobcw = 0; itobcn = 0; itobcs = 0 423 ! build file name 424 WRITE(cl_obc_eTS ,'("obc_east_TS_y",i4.4,"m",i2.2,".nc")' ) kyyfile,kmmfile 425 WRITE(cl_obc_wTS ,'("obc_west_TS_y",i4.4,"m",i2.2,".nc")' ) kyyfile,kmmfile 426 WRITE(cl_obc_nTS ,'("obc_north_TS_y",i4.4,"m",i2.2,".nc")' ) kyyfile,kmmfile 427 WRITE(cl_obc_sTS ,'("obc_south_TS_y",i4.4,"m",i2.2,".nc")' ) kyyfile,kmmfile 428 429 cl_vname = 'time_counter' 430 IF ( lp_obc_east ) THEN 431 CALL iom_open ( cl_obc_eTS , id_e ) 432 idvar = iom_varid( id_e, cl_vname, kdimsz = itmp ); itobce=itmp(1) 433 ENDIF 434 IF ( lp_obc_west ) THEN 435 CALL iom_open ( cl_obc_wTS , id_w ) 436 idvar = iom_varid( id_w, cl_vname, kdimsz = itmp ) ; itobcw=itmp(1) 437 ENDIF 438 IF ( lp_obc_north ) THEN 439 CALL iom_open ( cl_obc_nTS , id_n ) 440 idvar = iom_varid( id_n, cl_vname, kdimsz = itmp ) ; itobcn=itmp(1) 441 ENDIF 442 IF ( lp_obc_south ) THEN 443 CALL iom_open ( cl_obc_sTS , id_s ) 444 idvar = iom_varid( id_s, cl_vname, kdimsz = itmp ) ; itobcs=itmp(1) 445 ENDIF 446 447 itobc = MAX( itobce, itobcw, itobcn, itobcs ) 448 istop = 0 449 IF ( lp_obc_east .AND. itobce /= itobc ) istop = istop+1 450 IF ( lp_obc_west .AND. itobcw /= itobc ) istop = istop+1 451 IF ( lp_obc_north .AND. itobcn /= itobc ) istop = istop+1 452 IF ( lp_obc_south .AND. itobcs /= itobc ) istop = istop+1 453 nstop = nstop + istop 454 455 IF ( istop /= 0 ) THEN 456 WRITE(ctmp1,*) ' east, west, north, south: ', itobce, itobcw, itobcn, itobcs 457 CALL ctl_stop( 'obcdta : all files must have the same number of time steps', ctmp1 ) 458 ENDIF 459 460 IF ( itobc == 1 ) THEN 461 IF (lwp) THEN 462 WRITE(numout,*) ' obcdta found one time step only in the OBC files' 463 IF (ln_obc_clim) THEN 464 ! OK no problem 465 ELSE 466 ln_obc_clim=.true. 467 WRITE(numout,*) ' we force ln_obc_clim to T' 468 ENDIF 469 ENDIF 470 ELSE 471 #if defined key_agrif 472 IF ( ASSOCIATED(ztcobc) ) DEALLOCATE ( ztcobc ) 473 #else 474 IF ( ALLOCATED(ztcobc) ) DEALLOCATE ( ztcobc ) 475 #endif 476 ALLOCATE (ztcobc(itobc)) 477 DO ji=1,1 ! use a dummy loop to read ztcobc only once 478 IF ( lp_obc_east ) THEN 479 CALL iom_gettime ( id_e, ztcobc, cl_vname ) ; CALL iom_close (id_e) ; EXIT 480 ENDIF 481 IF ( lp_obc_west ) THEN 482 CALL iom_gettime ( id_w, ztcobc, cl_vname ) ; CALL iom_close (id_w) ; EXIT 483 ENDIF 484 IF ( lp_obc_north ) THEN 485 CALL iom_gettime ( id_n, ztcobc, cl_vname ) ; CALL iom_close (id_n) ; EXIT 486 ENDIF 487 IF ( lp_obc_south ) THEN 488 CALL iom_gettime ( id_s, ztcobc, cl_vname ) ; CALL iom_close (id_s) ; EXIT 489 ENDIF 490 END DO 491 rdt_obc = ztcobc(2)-ztcobc(1) ! just an information, not used for any computation 492 IF (lwp) WRITE(numout,*) ' obcdta found', itobc,' time steps in the OBC files' 493 IF (lwp) WRITE(numout,*) ' time step of obc data :', rdt_obc,' days' 494 ENDIF 495 zjcnes = zjcnes - rdt/rday ! trick : zcnes is always incremented by rdt/rday in obc_dta! 496 END SUBROUTINE obc_dta_chktime 497 498 499 #if defined key_dynspg_ts || defined key_dynspg_exp 500 SUBROUTINE obc_dta_bt( kt, kbt ) 501 !!--------------------------------------------------------------------------- 502 !! *** SUBROUTINE obc_dta *** 503 !! 504 !! ** Purpose : time interpolation of barotropic data for time-splitting scheme 505 !! Data at the boundary must be in m2/s 506 !! 507 !! History : 508 !! 9.0 ! 05-11 (V. garnier) Original code 509 !!--------------------------------------------------------------------------- 510 !! * Arguments 511 INTEGER, INTENT( in ) :: kt ! ocean time-step index 512 INTEGER, INTENT( in ) :: kbt ! barotropic ocean time-step index 513 514 !! * Local declarations 515 INTEGER :: ji, jj, jk, ii, ij ! dummy loop indices 516 INTEGER :: id_e, id_w, id_n, id_s, fid ! file identifiers 517 INTEGER :: itimo, iman, imois, i15 518 INTEGER :: itobcm, itobcp, itimom, itimop 519 REAL(wp) :: zxy 520 INTEGER :: isrel, ikt ! number of seconds since 1/1/1992 521 INTEGER :: iprint ! frequency for printouts. 522 523 !!--------------------------------------------------------------------------- 524 525 ! 1. First call: check time frames available in files. 526 ! ------------------------------------------------------- 527 528 IF( kt == nit000 ) THEN 529 530 ! 1.1 Barotropic tangential velocities set to zero 531 ! ------------------------------------------------- 532 IF( lp_obc_east ) vbtfoe(:) = 0.e0 533 IF( lp_obc_west ) vbtfow(:) = 0.e0 534 IF( lp_obc_south ) ubtfos(:) = 0.e0 535 IF( lp_obc_north ) ubtfon(:) = 0.e0 536 537 ! 1.2 Sea surface height and normal barotropic velocities set to zero 538 ! or initial conditions if nobc_dta == 0 539 ! -------------------------------------------------------------------- 540 541 IF( lp_obc_east ) THEN 542 ! initialisation to zero 543 sshedta(:,:) = 0.e0 544 ubtedta(:,:) = 0.e0 545 ! ! ================== ! 546 IF( nobc_dta == 0 ) THEN ! initial state used ! 547 ! ! ================== ! 548 ! Fills sedta, tedta, uedta (global arrays) 549 ! Remark: this works for njzoom = 1. Should the definition of ij include njzoom? 550 DO ji = nie0, nie1 551 DO jj = nje0p1, nje1m1 552 ij = jj -1 + njmpp 553 sshedta(ij,1) = sshn(ji+1,jj) * tmask(ji+1,jj,1) 554 END DO 555 END DO 556 ENDIF 557 ENDIF 558 559 IF( lp_obc_west) THEN 560 ! initialisation to zero 561 sshwdta(:,:) = 0.e0 562 ubtwdta(:,:) = 0.e0 563 ! ! ================== ! 564 IF( nobc_dta == 0 ) THEN ! initial state used ! 565 ! ! ================== ! 566 ! Fills swdta, twdta, uwdta (global arrays) 567 ! Remark: this works for njzoom = 1. Should the definition of ij include njzoom? 568 DO ji = niw0, niw1 569 DO jj = njw0p1, njw1m1 570 ij = jj -1 + njmpp 571 sshwdta(ij,1) = sshn(ji,jj) * tmask(ji,jj,1) 572 END DO 573 END DO 574 ENDIF 575 ENDIF 576 577 IF( lp_obc_north) THEN 578 ! initialisation to zero 579 sshndta(:,:) = 0.e0 580 vbtndta(:,:) = 0.e0 581 ! ! ================== ! 582 IF( nobc_dta == 0 ) THEN ! initial state used ! 583 ! ! ================== ! 584 ! Fills sndta, tndta, vndta (global arrays) 585 ! Remark: this works for njzoom = 1. Should the definition of ij include njzoom? 586 DO jj = njn0, njn1 587 DO ji = nin0p1, nin1m1 588 DO jk = 1, jpkm1 589 ii = ji -1 + nimpp 590 vbtndta(ii,1) = vbtndta(ii,1) + vndta(ii,jk,1)*fse3v(ji,jj,jk) 591 END DO 592 sshndta(ii,1) = sshn(ii,jj+1) * tmask(ji,jj+1,1) 593 END DO 594 END DO 595 ENDIF 596 ENDIF 597 598 IF( lp_obc_south) THEN 599 ! initialisation to zero 600 ssdta(:,:,:) = 0.e0 601 tsdta(:,:,:) = 0.e0 602 vsdta(:,:,:) = 0.e0 603 sshsdta(:,:) = 0.e0 604 vbtsdta(:,:) = 0.e0 605 ! ! ================== ! 606 IF( nobc_dta == 0 ) THEN ! initial state used ! 607 ! ! ================== ! 608 ! Fills ssdta, tsdta, vsdta (global arrays) 609 ! Remark: this works for njzoom = 1. Should the definition of ij include njzoom? 610 DO jj = njs0, njs1 611 DO ji = nis0p1, nis1m1 612 DO jk = 1, jpkm1 613 ii = ji -1 + nimpp 614 vbtsdta(ii,1) = vbtsdta(ii,1) + vsdta(ii,jk,1)*fse3v(ji,jj,jk) 615 END DO 616 sshsdta(ii,1) = sshn(ji,jj) * tmask(ii,jj,1) 617 END DO 618 END DO 619 ENDIF 620 ENDIF 621 622 ENDIF ! END IF kt == nit000 623 624 !!------------------------------------------------------------------------------------ 625 ! 2. Initialize the time we are at. Does this every time the routine is called, 626 ! excepted when nobc_dta = 0 627 ! 628 IF( nobc_dta == 0) THEN 629 itimo = 1 630 zxy = 0 631 ELSE 632 IF(ntobc == 1) THEN 633 itimo = 1 634 ELSE IF (ntobc == 12) THEN ! BC are monthly 635 ! we assume we have climatology in that case 636 iman = 12 637 i15 = nday / 16 638 imois = nmonth + i15 - 1 639 IF( imois == 0 ) imois = iman 640 itimo = imois 641 ELSE 642 IF(lwp) WRITE(numout,*) 'data other than constant or monthly',kt 643 iman = ntobc 644 itimo = FLOOR( kt*rdt / tcobc(1)) 645 isrel=kt*rdt 646 ENDIF 647 ENDIF 648 649 ! 2. Read two records in the file if necessary 650 ! --------------------------------------------- 651 652 IF( nobc_dta == 1 .AND. nlecto == 1 ) THEN 653 654 IF( lp_obc_east ) THEN 655 ! ... Read datafile and set sea surface height and barotropic velocity 656 ! ... initialise the sshedta, ubtedta arrays 657 sshedta(:,0) = sshedta(:,1) 658 ubtedta(:,0) = ubtedta(:,1) 659 CALL iom_open ( 'obceast_TS.nc', id_e ) 660 CALL iom_get ( id_e, jpdom_unknown, 'vossurfh', sshedta(:,1), ktime=ntobc1 ) 661 CALL iom_get ( id_e, jpdom_unknown, 'vossurfh', sshedta(:,2), ktime=ntobc2 ) 662 IF( lk_dynspg_ts ) THEN 663 CALL iom_get (id_e, jpdom_unknown, 'vossurfh', sshedta(:,3), ktime=ntobc2+1 ) 664 ENDIF 665 CALL iom_close ( id_e ) 666 ! 667 CALL iom_open ( 'obceast_U.nc', id_e ) 668 CALL iom_get ( id_e, jpdom_unknown, 'vozoubt', ubtedta(:,1), ktime=ntobc1 ) 669 CALL iom_get ( id_e, jpdom_unknown, 'vozoubt', ubtedta(:,2), ktime=ntobc2 ) 670 IF( lk_dynspg_ts ) THEN 671 CALL iom_get ( id_e, jpdom_unknown, 'vozoubt', ubtedta(:,3), ktime=ntobc2+1 ) 672 ENDIF 673 CALL iom_close ( id_e ) 674 ! ... Usually printout is done only once at kt = nit000, unless nprint (namelist) > 1 675 IF( lwp .AND. ( kt == nit000 .OR. nprint /= 0 ) ) THEN 676 WRITE(numout,*) 677 WRITE(numout,*) ' Read East OBC barotropic data records ', ntobc1, ntobc2 678 iprint = (jpjef-jpjed+1)/20 +1 679 WRITE(numout,*) 680 WRITE(numout,*) ' Sea surface height record 1' 681 CALL prihre( sshedta(:,1), jpjef-jpjed+1, 1, 1, jpjef-jpjed+1, iprint, 1, 1, -3, 1., numout ) 682 WRITE(numout,*) 683 WRITE(numout,*) ' Normal transport (m2/s) record 1',iprint 684 CALL prihre( ubtedta(:,1), jpjef-jpjed+1, 1, 1, jpjef-jpjed+1, iprint, 1, 1, -3, 1., numout ) 685 ENDIF 686 ENDIF 687 688 IF( lp_obc_west ) THEN 689 ! ... Read datafile and set temperature, salinity and normal velocity 690 ! ... initialise the swdta, twdta, uwdta arrays 691 sshwdta(:,0) = sshwdta(:,1) 692 ubtwdta(:,0) = ubtwdta(:,1) 693 CALL iom_open ( 'obcwest_TS.nc', id_w ) 694 CALL iom_get ( id_w, jpdom_unknown, 'vossurfh', sshwdta(:,1), ktime=ntobc1 ) 695 CALL iom_get ( id_w, jpdom_unknown, 'vossurfh', sshwdta(:,2), ktime=ntobc2 ) 696 IF( lk_dynspg_ts ) THEN 697 CALL ( id_w, jpdom_unknown, 'vossurfh', sshwdta(:,3), ktime=ntobc2+1 ) 698 ENDIF 699 CALL iom_close ( id_w ) 700 ! 701 CALL iom_open ( 'obcwest_U.nc', id_w ) 702 CALL iom_get ( id_w, jpdom_unknown, 'vozoubt', ubtwdta(:,1), ktime=ntobc1 ) 703 CALL iom_get ( id_w, jpdom_unknown, 'vozoubt', ubtwdta(:,2), ktime=ntobc2 ) 704 IF( lk_dynspg_ts ) THEN 705 CALL iom_get ( id_w, jpdom_unknown, 'vozoubt', ubtwdta(:,3), ktime=ntobc2+1 ) 706 ENDIF 707 CALL iom_close ( id_w ) 708 ! ... Usually printout is done only once at kt = nit000, unless nprint (namelist) > 1 709 IF( lwp .AND. ( kt == nit000 .OR. nprint /= 0 ) ) THEN 710 WRITE(numout,*) 711 WRITE(numout,*) ' Read West OBC barotropic data records ', ntobc1, ntobc2 712 iprint = (jpjwf-jpjwd+1)/20 +1 713 WRITE(numout,*) 714 WRITE(numout,*) ' Sea surface height record 1 - printout surface level' 715 CALL prihre( sshwdta(:,1), jpjwf-jpjwd+1, 1, 1, jpjwf-jpjwd+1, iprint, 1, 1, -3, 1., numout ) 716 WRITE(numout,*) 717 WRITE(numout,*) ' Normal transport (m2/s) record 1' 718 CALL prihre( ubtwdta(:,1), jpjwf-jpjwd+1, 1, 1, jpjwf-jpjwd+1, iprint, 1, 1, -3, 1., numout ) 719 ENDIF 720 ENDIF 721 722 IF( lp_obc_north) THEN 723 ! ... Read datafile and set sea surface height and barotropic velocity 724 ! ... initialise the sshndta, ubtndta arrays 725 sshndta(:,0) = sshndta(:,1) 726 vbtndta(:,0) = vbtndta(:,1) 727 CALL iom_open ( 'obcnorth_TS.nc', id_n ) 728 CALL iom_get (id_n, jpdom_unknown, 'vossurfh', sshndta(:,1), ktime=ntobc1 ) 729 CALL iom_get (id_n, jpdom_unknown, 'vossurfh', sshndta(:,2), ktime=ntobc2 ) 730 IF( lk_dynspg_ts ) THEN 731 CALL iom_get (id_n, jpdom_unknown, 'vossurfh', sshndta(:,3), ktime=ntobc2+1 ) 732 ENDIF 733 CALL iom_close ( id_n ) 734 735 CALL iom_open ( 'obcnorth_V.nc', id_n ) 736 CALL iom_get (id_n, jpdom_unknown, 'vomevbt', vbtndta(:,1), ktime=ntobc1 ) 737 CALL iom_get (id_n, jpdom_unknown, 'vomevbt', vbtndta(:,2), ktime=ntobc2 ) 738 IF( lk_dynspg_ts ) THEN 739 CALL iom_get (id_n, jpdom_unknown, 'vomevbt', vbtndta(:,3), ktime=ntobc2+1 ) 740 ENDIF 741 CALL iom_close ( id_n ) 742 743 ! ... Usually printout is done only once at kt = nit000, unless nprint (namelist) > 1 744 IF( lwp .AND. ( kt == nit000 .OR. nprint /= 0 ) ) THEN 745 WRITE(numout,*) 746 WRITE(numout,*) ' Read North OBC barotropic data records ', ntobc1, ntobc2 747 iprint = (jpinf-jpind+1)/20 +1 748 WRITE(numout,*) 749 WRITE(numout,*) ' Sea surface height record 1 - printout surface level' 750 CALL prihre( sshndta(:,1), jpinf-jpind+1, 1, 1, jpinf-jpind+1, iprint, 1, 1, -3, 1., numout ) 751 WRITE(numout,*) 752 WRITE(numout,*) ' Normal transport (m2/s) record 1' 753 CALL prihre( vbtndta(:,1), jpinf-jpind+1, 1, 1, jpinf-jpind+1, iprint, 1, 1, -3, 1., numout ) 754 ENDIF 755 ENDIF 756 757 IF( lp_obc_south) THEN 758 ! ... Read datafile and set sea surface height and barotropic velocity 759 ! ... initialise the sshsdta, ubtsdta arrays 760 sshsdta(:,0) = sshsdta(:,1) 761 vbtsdta(:,0) = vbtsdta(:,1) 762 CALL iom_open ( 'obcsouth_TS.nc', id_s ) 763 CALL iom_get ( id_s, jpdom_unknown, 'vossurfh', sshsdta(:,1), ktime=ntobc1 ) 764 CALL iom_get ( id_s, jpdom_unknown, 'vossurfh', sshsdta(:,2), ktime=ntobc2 ) 765 IF( lk_dynspg_ts ) THEN 766 CALL iom_get ( id_s, jpdom_unknown, 'vossurfh', sshsdta(:,3), ktime=ntobc2+1 ) 767 ENDIF 768 CALL iom_close ( id_s ) 769 770 CALL iom_open ( 'obcsouth_V.nc', id_s ) 771 CALL iom_get ( id_s, jpdom_unknown, 'vomevbt', vbtsdta(:,1), ktime=ntobc1 ) 772 CALL iom_get ( id_s, jpdom_unknown, 'vomevbt', vbtsdta(:,2), ktime=ntobc2 ) 773 IF( lk_dynspg_ts ) THEN 774 CALL iom_get ( id_s, jpdom_unknown, 'vomevbt', vbtsdta(:,3), ktime=ntobc2+1 ) 775 ENDIF 776 CALL iom_close ( id_s ) 777 778 ! ... Usually printout is done only once at kt = nit000, unless nprint (namelist) > 1 779 IF( lwp .AND. ( kt == nit000 .OR. nprint /= 0 ) ) THEN 780 WRITE(numout,*) 781 WRITE(numout,*) ' Read South OBC barotropic data records ', ntobc1, ntobc2 782 iprint = (jpisf-jpisd+1)/20 +1 783 WRITE(numout,*) 784 WRITE(numout,*) ' Sea surface height record 1 - printout surface level' 785 CALL prihre( sshsdta(:,1), jpisf-jpisd+1, 1, 1, jpisf-jpisd+1, iprint, 1, 1, -3, 1., numout ) 786 WRITE(numout,*) 787 WRITE(numout,*) ' Normal transport (m2/s) record 1' 788 CALL prihre( vbtsdta(:,1), jpisf-jpisd+1, 1, 1, jpisf-jpisd+1, iprint, 1, 1, -3, 1., numout ) 789 ENDIF 790 ENDIF 791 792 ENDIF ! end of the test on the condition to read or not the files 793 794 ! 3. Call at every time step : Linear interpolation of BCs to current time step 795 ! ---------------------------------------------------------------------- 796 797 IF( lk_dynspg_ts ) THEN 798 isrel = (kt-1)*rdt + kbt*(rdt/REAL(nn_baro,wp)) 799 800 IF( nobc_dta == 1 ) THEN 801 isrel = (kt-1)*rdt + kbt*(rdt/REAL(nn_baro,wp)) 802 itimo = FLOOR( kt*rdt / (tcobc(2)-tcobc(1)) ) 803 itimom = FLOOR( (kt-1)*rdt / (tcobc(2)-tcobc(1)) ) 804 itimop = FLOOR( (kt+1)*rdt / (tcobc(2)-tcobc(1)) ) 805 IF( itimom == itimo .AND. itimop == itimo ) THEN 806 itobcm = ntobc1 807 itobcp = ntobc2 808 809 ELSEIF ( itimom <= itimo .AND. itimop == itimo ) THEN 810 IF( FLOOR( isrel / (tcobc(2)-tcobc(1)) ) < itimo ) THEN 811 itobcm = ntobc1-1 812 itobcp = ntobc2-1 813 ELSE 814 itobcm = ntobc1 815 itobcp = ntobc2 816 ENDIF 817 818 ELSEIF ( itimom == itimo .AND. itimop >= itimo ) THEN 819 IF( FLOOR( isrel / (tcobc(2)-tcobc(1)) ) < itimop ) THEN 820 itobcm = ntobc1 821 itobcp = ntobc2 822 ELSE 823 itobcm = ntobc1+1 824 itobcp = ntobc2+1 825 ENDIF 826 827 ELSEIF ( itimom == itimo-1 .AND. itimop == itimo+1 ) THEN 828 IF( FLOOR( isrel / (tcobc(2)-tcobc(1)) ) < itimo ) THEN 829 itobcm = ntobc1-1 830 itobcp = ntobc2-1 831 ELSEIF ( FLOOR( isrel / (tcobc(2)-tcobc(1)) ) < itimop ) THEN 832 itobcm = ntobc1 833 itobcp = ntobc2 834 ELSEIF ( FLOOR( isrel / (tcobc(2)-tcobc(1)) ) == itimop ) THEN 835 itobcm = ntobc1+1 836 itobcp = ntobc2+2 837 ELSE 838 IF(lwp) WRITE(numout, *) 'obc_dta_bt: You should not have seen this print! error 1?' 839 ENDIF 840 ELSE 841 IF(lwp) WRITE(numout, *) 'obc_dta_bt: You should not have seen this print! error 2?' 842 ENDIF 843 844 ENDIF 845 846 ELSE IF( lk_dynspg_exp ) THEN 847 isrel=kt*rdt 848 itobcm = ntobc1 849 itobcp = ntobc2 850 ENDIF 851 852 IF( ntobc == 1 .OR. nobc_dta == 0 ) THEN 853 zxy = 0.e0 854 ELSE IF( ntobc == 12 ) THEN 855 zxy = FLOAT( nday + 15 - 30 * i15 ) / 30. 856 ELSE 857 zxy = (tcobc(itobcm)-FLOAT(isrel)) / (tcobc(itobcm)-tcobc(itobcp)) 858 ENDIF 859 860 IF( lp_obc_east ) THEN ! fills sshfoe, ubtfoe (local to each processor) 861 DO jj = nje0p1, nje1m1 862 ij = jj -1 + njmpp 863 sshfoe(jj) = ( zxy * sshedta(ij,2) + (1.-zxy) * sshedta(ij,1) ) * temsk(jj,1) 864 ubtfoe(jj) = ( zxy * ubtedta(ij,2) + (1.-zxy) * ubtedta(ij,1) ) * uemsk(jj,1) 865 END DO 866 ENDIF 867 868 IF( lp_obc_west) THEN ! fills sshfow, ubtfow (local to each processor) 869 DO jj = njw0p1, njw1m1 870 ij = jj -1 + njmpp 871 sshfow(jj) = ( zxy * sshwdta(ij,2) + (1.-zxy) * sshwdta(ij,1) ) * twmsk(jj,1) 872 ubtfow(jj) = ( zxy * ubtwdta(ij,2) + (1.-zxy) * ubtwdta(ij,1) ) * uwmsk(jj,1) 873 END DO 874 ENDIF 875 876 IF( lp_obc_north) THEN ! fills sshfon, vbtfon (local to each processor) 877 DO ji = nin0p1, nin1m1 878 ii = ji -1 + nimpp 879 sshfon(ji) = ( zxy * sshndta(ii,2) + (1.-zxy) * sshndta(ii,1) ) * tnmsk(ji,1) 880 vbtfon(ji) = ( zxy * vbtndta(ii,2) + (1.-zxy) * vbtndta(ii,1) ) * vnmsk(ji,1) 881 END DO 882 ENDIF 883 884 IF( lp_obc_south) THEN ! fills sshfos, vbtfos (local to each processor) 885 DO ji = nis0p1, nis1m1 886 ii = ji -1 + nimpp 887 sshfos(ji) = ( zxy * sshsdta(ii,2) + (1.-zxy) * sshsdta(ii,1) ) * tsmsk(ji,1) 888 vbtfos(ji) = ( zxy * vbtsdta(ii,2) + (1.-zxy) * vbtsdta(ii,1) ) * vsmsk(ji,1) 889 END DO 890 ENDIF 891 892 END SUBROUTINE obc_dta_bt 893 894 #else 895 !!----------------------------------------------------------------------------- 896 !! Default option 897 !!----------------------------------------------------------------------------- 898 SUBROUTINE obc_dta_bt ( kt, kbt ) ! Empty routine 899 !! * Arguments 900 INTEGER,INTENT(in) :: kt 901 INTEGER, INTENT( in ) :: kbt ! barotropic ocean time-step index 902 WRITE(*,*) 'obc_dta_bt: You should not have seen this print! error?', kt 903 WRITE(*,*) 'obc_dta_bt: You should not have seen this print! error?', kbt 904 END SUBROUTINE obc_dta_bt 905 #endif 906 907 908 !!============================================================================== 909 SUBROUTINE obc_read (kt, nt_x, ntobc_x, iyy, imm) 910 !!------------------------------------------------------------------------- 911 !! *** ROUTINE obc_read *** 912 !! 913 !! ** Purpose : Read the boundary data in files identified by iyy and imm 914 !! According to the validated open boundaries, return the 915 !! following arrays : 916 !! sedta, tedta : East OBC salinity and temperature 917 !! uedta, vedta : " " u and v velocity component 918 !! 919 !! swdta, twdta : West OBC salinity and temperature 920 !! uwdta, vwdta : " " u and v velocity component 921 !! 922 !! sndta, tndta : North OBC salinity and temperature 923 !! undta, vndta : " " u and v velocity component 924 !! 925 !! ssdta, tsdta : South OBC salinity and temperature 926 !! usdta, vsdta : " " u and v velocity component 927 !! 928 !! ** Method : These fields are read in the record ntobc_x of the files. 929 !! The number of records is already known. If ntobc_x is greater 930 !! than the number of record, this routine will look for next file, 931 !! updating the indices (case of inter-annual obcs) or loop at the 932 !! begining in case of climatological file (ln_obc_clim = true ). 933 !! ------------------------------------------------------------------------- 934 !! History: ! 2005 ( P. Mathiot, C. Langlais ) Original code 935 !! ! 2008 ( J,M, Molines ) Use IOM and cleaning 936 !!-------------------------------------------------------------------------- 937 938 ! * Arguments 939 INTEGER, INTENT( in ) :: kt, nt_x 940 INTEGER, INTENT( inout ) :: ntobc_x , iyy, imm ! yes ! inout ! 941 942 ! * Local variables 943 CHARACTER (len=40) :: & ! file names 314 ! all logical-mask are initialzed to true when declared 315 WHERE ( temsk == 0 ) ltemsk=.FALSE. 316 WHERE ( uemsk == 0 ) luemsk=.FALSE. 317 WHERE ( vemsk == 0 ) lvemsk=.FALSE. 318 319 WHERE ( twmsk == 0 ) ltwmsk=.FALSE. 320 WHERE ( uwmsk == 0 ) luwmsk=.FALSE. 321 WHERE ( vwmsk == 0 ) lvwmsk=.FALSE. 322 323 WHERE ( tnmsk == 0 ) ltnmsk=.FALSE. 324 WHERE ( unmsk == 0 ) lunmsk=.FALSE. 325 WHERE ( vnmsk == 0 ) lvnmsk=.FALSE. 326 327 WHERE ( tsmsk == 0 ) ltsmsk=.FALSE. 328 WHERE ( usmsk == 0 ) lusmsk=.FALSE. 329 WHERE ( vsmsk == 0 ) lvsmsk=.FALSE. 330 331 iyear=1950; imonth=01; iday=01; zsec=0. 332 ! zjuliancnes : julian day corresonding to 01/01/1950 333 CALL ymds2ju(iyear, imonth, iday,zsec , zjuliancnes) 334 335 !current year and curent month 336 iyy=INT(ndastp/10000) ; imm=INT((ndastp -iyy*10000)/100) ; idd=(ndastp-iyy*10000-imm*100) 337 IF (iyy < 1900) iyy = iyy+1900 ! always assume that years are on 4 digits. 338 CALL ymds2ju(iyy, imm, idd ,zsec , zjulian) 339 ndate0_cnes = zjulian - zjuliancnes ! jcnes day when call to obc_dta_ini 340 341 iyyfile=iyy ; immfile=0 ! set component of the current file name 342 IF ( cffile /= 'annual') immfile=imm 343 IF ( ln_obc_clim) iyyfile = 0 ! assume that climatological files are labeled y0000 344 345 CALL obc_dta_chktime ( iyyfile, immfile ) 346 347 IF ( itobc == 1 ) THEN 348 ! in this case we will provide boundary data only once. 349 nt_a=1 ; ntobc_a=1 350 CALL obc_read (nit000, nt_a, ntobc_a, iyyfile, immfile) 351 IF( lp_obc_east ) THEN 352 ! fills sfoe, tfoe, ufoe ,vfoe 353 sfoe(:,:) = sedta (:,:,1) ; tfoe(:,:) = tedta (:,:,1) 354 ufoe(:,:) = uedta (:,:,1) ; vfoe(:,:) = vedta (:,:,1) 355 ENDIF 356 357 IF( lp_obc_west) THEN 358 ! fills sfow, tfow, ufow ,vfow 359 sfow(:,:) = swdta (:,:,1) ; tfow(:,:) = twdta (:,:,1) 360 ufow(:,:) = uwdta (:,:,1) ; vfow(:,:) = vwdta (:,:,1) 361 ENDIF 362 363 IF( lp_obc_north) THEN 364 ! fills sfon, tfon, ufon ,vfon 365 sfon(:,:) = sndta (:,:,1) ; tfon(:,:) = tndta (:,:,1) 366 ufon(:,:) = undta (:,:,1) ; vfon(:,:) = vndta (:,:,1) 367 ENDIF 368 369 IF( lp_obc_south) THEN 370 ! fills sfos, tfos, ufos ,vfos 371 sfos(:,:) = ssdta (:,:,1) ; tfos(:,:) = tsdta (:,:,1) 372 ufos(:,:) = usdta (:,:,1) ; vfos(:,:) = vsdta (:,:,1) 373 ENDIF 374 RETURN ! we go out of obc_dta_ini -------------------------------------->>>>> 375 ENDIF 376 377 ! nday_year is the day number in the current year ( 1 for 01/01 ) 378 ! we suppose that we always start from the begining of a day 379 ! zsec=MOD( (kt-nit000)*rdt - (nday_year - nday_year0 )*rday, rday ) ! number of seconds in the current day 380 zsec=0.e0 ! here, kt=nit000, nday_year = ndat_year0 381 382 IF (ln_obc_clim) THEN 383 zjcnes = nday_year - 1 + zsec/rday ! for clim file time is in days in a year 384 ELSE 385 zjcnes = ndate0_cnes + (nday_year - nday_year0 ) + zsec/rday 386 ENDIF 387 388 ! look for 'before' record number in the current file 389 ntobc = nrecbef () 390 391 IF (lwp) WRITE(numout,*) 'obc files frequency :',cffile 392 IF (lwp) WRITE(numout,*) ' zjcnes0 =',zjcnes,' ndastp0 =',ndastp 393 IF (lwp) WRITE(numout,*) ' annee0 ',iyy,' month0 ', imm,' day0 ', idd 394 IF (lwp) WRITE(numout,*) 'first file open :',cl_obc_nTS 395 396 ! record initialisation 397 !-------------------- 398 nt_b = 1 ; nt_a = 2 399 400 ntobc_a = ntobc + 1 401 ntobc_b = ntobc 402 403 CALL obc_read (kt, nt_b, ntobc_b, iyyfile, immfile) ! read 'before' fields 404 CALL obc_read (kt, nt_a, ntobc_a, iyyfile, immfile) ! read 'after' fields 405 406 ! additional frame in case of time-splitting 407 # if defined key_dynspg_ts 408 nt_m = 0 409 ntobc_m=mod(ntobc_b-2+itobc,itobc)+1 410 zjcnes_obc(nt_m)= ztcobc(ntobc_m) ! FDbug has not checked that this is correct!! 411 IF (ln_rstart) THEN 412 CALL obc_read (kt, nt_m, ntobc_m, iyyfile, immfile) ! read 'after' fields 413 ENDIF 414 # endif 415 416 zjcnes_obc(nt_b)= ztcobc(ntobc_b) 417 zjcnes_obc(nt_a)= ztcobc(ntobc_a) 418 ! 419 END SUBROUTINE obc_dta_ini 420 421 422 SUBROUTINE obc_dta_chktime (kyyfile, kmmfile) 423 ! 424 ! check the number of time steps in the files and read ztcobc 425 ! 426 ! * Arguments 427 INTEGER, INTENT(in) :: kyyfile, kmmfile 428 ! * local variables 429 INTEGER :: istop ! error control 430 INTEGER :: ji ! dummy loop index 431 432 INTEGER :: idvar, id_e, id_w, id_n, id_s ! file identifiers 433 INTEGER, DIMENSION(1) :: itmp 434 CHARACTER(LEN=25) :: cl_vname 435 436 ntobc_a = 0; itobce =0 ; itobcw = 0; itobcn = 0; itobcs = 0 437 ! build file name 438 IF(ln_obc_clim) THEN ! revert to old convention for climatological OBC forcing 439 cl_obc_eTS='obceast_TS.nc' 440 cl_obc_wTS='obcwest_TS.nc' 441 cl_obc_nTS='obcnorth_TS.nc' 442 cl_obc_sTS='obcsouth_TS.nc' 443 ELSE ! convention for climatological OBC 444 WRITE(cl_obc_eTS ,'("obc_east_TS_y",i4.4,"m",i2.2,".nc")' ) kyyfile,kmmfile 445 WRITE(cl_obc_wTS ,'("obc_west_TS_y",i4.4,"m",i2.2,".nc")' ) kyyfile,kmmfile 446 WRITE(cl_obc_nTS ,'("obc_north_TS_y",i4.4,"m",i2.2,".nc")' ) kyyfile,kmmfile 447 WRITE(cl_obc_sTS ,'("obc_south_TS_y",i4.4,"m",i2.2,".nc")' ) kyyfile,kmmfile 448 ENDIF 449 450 cl_vname = 'time_counter' 451 IF ( lp_obc_east ) THEN 452 CALL iom_open ( cl_obc_eTS , id_e ) 453 idvar = iom_varid( id_e, cl_vname, kdimsz = itmp ); itobce=itmp(1) 454 ENDIF 455 IF ( lp_obc_west ) THEN 456 CALL iom_open ( cl_obc_wTS , id_w ) 457 idvar = iom_varid( id_w, cl_vname, kdimsz = itmp ) ; itobcw=itmp(1) 458 ENDIF 459 IF ( lp_obc_north ) THEN 460 CALL iom_open ( cl_obc_nTS , id_n ) 461 idvar = iom_varid( id_n, cl_vname, kdimsz = itmp ) ; itobcn=itmp(1) 462 ENDIF 463 IF ( lp_obc_south ) THEN 464 CALL iom_open ( cl_obc_sTS , id_s ) 465 idvar = iom_varid( id_s, cl_vname, kdimsz = itmp ) ; itobcs=itmp(1) 466 ENDIF 467 468 itobc = MAX( itobce, itobcw, itobcn, itobcs ) 469 istop = 0 470 IF ( lp_obc_east .AND. itobce /= itobc ) istop = istop+1 471 IF ( lp_obc_west .AND. itobcw /= itobc ) istop = istop+1 472 IF ( lp_obc_north .AND. itobcn /= itobc ) istop = istop+1 473 IF ( lp_obc_south .AND. itobcs /= itobc ) istop = istop+1 474 nstop = nstop + istop 475 476 IF ( istop /= 0 ) THEN 477 WRITE(ctmp1,*) ' east, west, north, south: ', itobce, itobcw, itobcn, itobcs 478 CALL ctl_stop( 'obcdta : all files must have the same number of time steps', ctmp1 ) 479 ENDIF 480 481 IF ( itobc == 1 ) THEN 482 IF (lwp) THEN 483 WRITE(numout,*) ' obcdta found one time step only in the OBC files' 484 IF (ln_obc_clim) THEN 485 ! OK no problem 486 ELSE 487 ln_obc_clim=.true. 488 WRITE(numout,*) ' we force ln_obc_clim to T' 489 ENDIF 490 ENDIF 491 ELSE 492 IF ( ALLOCATED(ztcobc) ) DEALLOCATE ( ztcobc ) 493 ALLOCATE (ztcobc(itobc)) 494 DO ji=1,1 ! use a dummy loop to read ztcobc only once 495 IF ( lp_obc_east ) THEN 496 CALL iom_gettime ( id_e, ztcobc, cl_vname ) ; CALL iom_close (id_e) ; EXIT 497 ENDIF 498 IF ( lp_obc_west ) THEN 499 CALL iom_gettime ( id_w, ztcobc, cl_vname ) ; CALL iom_close (id_w) ; EXIT 500 ENDIF 501 IF ( lp_obc_north ) THEN 502 CALL iom_gettime ( id_n, ztcobc, cl_vname ) ; CALL iom_close (id_n) ; EXIT 503 ENDIF 504 IF ( lp_obc_south ) THEN 505 CALL iom_gettime ( id_s, ztcobc, cl_vname ) ; CALL iom_close (id_s) ; EXIT 506 ENDIF 507 END DO 508 rdt_obc = ztcobc(2)-ztcobc(1) ! just an information, not used for any computation 509 IF (lwp) WRITE(numout,*) ' obcdta found', itobc,' time steps in the OBC files' 510 IF (lwp) WRITE(numout,*) ' time step of obc data :', rdt_obc,' days' 511 ENDIF 512 zjcnes = zjcnes - rdt/rday ! trick : zcnes is always incremented by rdt/rday in obc_dta! 513 END SUBROUTINE obc_dta_chktime 514 515 # if defined key_dynspg_ts || defined key_dynspg_exp 516 SUBROUTINE obc_dta_bt( kt, kbt ) 517 !!--------------------------------------------------------------------------- 518 !! *** SUBROUTINE obc_dta *** 519 !! 520 !! ** Purpose : time interpolation of barotropic data for time-splitting scheme 521 !! Data at the boundary must be in m2/s 522 !! 523 !! History : 524 !! 9.0 ! 05-11 (V. garnier) Original code 525 !!--------------------------------------------------------------------------- 526 !! * Arguments 527 INTEGER, INTENT( in ) :: kt ! ocean time-step index 528 INTEGER, INTENT( in ) :: kbt ! barotropic ocean time-step index 529 530 !! * Local declarations 531 INTEGER :: ji, jj ! dummy loop indices 532 INTEGER :: i15 533 INTEGER :: itobcm, itobcp 534 REAL(wp) :: zxy 535 INTEGER :: isrel ! number of seconds since 1/1/1992 536 537 !!--------------------------------------------------------------------------- 538 539 ! 1. First call: check time frames available in files. 540 ! ------------------------------------------------------- 541 542 IF( kt == nit000 ) THEN 543 544 ! 1.1 Barotropic tangential velocities set to zero 545 ! ------------------------------------------------- 546 IF( lp_obc_east ) vbtfoe(:) = 0.e0 547 IF( lp_obc_west ) vbtfow(:) = 0.e0 548 IF( lp_obc_south ) ubtfos(:) = 0.e0 549 IF( lp_obc_north ) ubtfon(:) = 0.e0 550 551 ! 1.2 Sea surface height and normal barotropic velocities set to zero 552 ! or initial conditions if nobc_dta == 0 553 ! -------------------------------------------------------------------- 554 555 IF( lp_obc_east ) THEN 556 ! initialisation to zero 557 sshedta(:,:) = 0.e0 558 ubtedta(:,:) = 0.e0 559 vbtedta(:,:) = 0.e0 ! tangential component 560 ! ! ================== ! 561 IF( nobc_dta == 0 ) THEN ! initial state used ! 562 ! ! ================== ! 563 ! Fills sedta, tedta, uedta (global arrays) 564 ! Remark: this works for njzoom = 1. Should the definition of ij include njzoom? 565 DO ji = nie0, nie1 566 DO jj = 1, jpj 567 sshedta(jj,1) = sshn(ji+1,jj) * tmask(ji+1,jj,1) 568 END DO 569 END DO 570 ENDIF 571 ENDIF 572 573 IF( lp_obc_west) THEN 574 ! initialisation to zero 575 sshwdta(:,:) = 0.e0 576 ubtwdta(:,:) = 0.e0 577 vbtwdta(:,:) = 0.e0 ! tangential component 578 ! ! ================== ! 579 IF( nobc_dta == 0 ) THEN ! initial state used ! 580 ! ! ================== ! 581 ! Fills swdta, twdta, uwdta (global arrays) 582 ! Remark: this works for njzoom = 1. Should the definition of ij include njzoom? 583 DO ji = niw0, niw1 584 DO jj = 1, jpj 585 sshwdta(jj,1) = sshn(ji,jj) * tmask(ji,jj,1) 586 END DO 587 END DO 588 ENDIF 589 ENDIF 590 591 IF( lp_obc_north) THEN 592 ! initialisation to zero 593 sshndta(:,:) = 0.e0 594 ubtndta(:,:) = 0.e0 ! tangential component 595 vbtndta(:,:) = 0.e0 596 ! ! ================== ! 597 IF( nobc_dta == 0 ) THEN ! initial state used ! 598 ! ! ================== ! 599 ! Fills sndta, tndta, vndta (global arrays) 600 ! Remark: this works for njzoom = 1. Should the definition of ij include njzoom? 601 DO jj = njn0, njn1 602 DO ji = 1, jpi 603 sshndta(ji,1) = sshn(ji,jj+1) * tmask(ji,jj+1,1) 604 END DO 605 END DO 606 ENDIF 607 ENDIF 608 609 IF( lp_obc_south) THEN 610 ! initialisation to zero 611 sshsdta(:,:) = 0.e0 612 ubtsdta(:,:) = 0.e0 ! tangential component 613 vbtsdta(:,:) = 0.e0 614 ! ! ================== ! 615 IF( nobc_dta == 0 ) THEN ! initial state used ! 616 ! ! ================== ! 617 ! Fills ssdta, tsdta, vsdta (global arrays) 618 ! Remark: this works for njzoom = 1. Should the definition of ij include njzoom? 619 DO jj = njs0, njs1 620 DO ji = 1, jpi 621 sshsdta(ji,1) = sshn(ji,jj) * tmask(ji,jj,1) 622 END DO 623 END DO 624 ENDIF 625 ENDIF 626 627 IF( nobc_dta == 0 ) CALL obc_depth_average(1) ! depth averaged velocity from the OBC depth-dependent frames 628 629 ENDIF ! END kt == nit000 630 631 !!------------------------------------------------------------------------------------ 632 ! 2. Initialize the time we are at. Does this every time the routine is called, 633 ! excepted when nobc_dta = 0 634 ! 635 636 ! 3. Call at every time step : Linear interpolation of BCs to current time step 637 ! ---------------------------------------------------------------------- 638 639 IF( lk_dynspg_ts ) THEN 640 isrel = (kt-1)*rdt + kbt*(rdt/REAL(nn_baro,wp)) 641 ELSE IF( lk_dynspg_exp ) THEN 642 isrel=kt*rdt 643 ENDIF 644 645 itobcm = nt_b 646 itobcp = nt_a 647 IF( itobc == 1 .OR. nobc_dta == 0 ) THEN 648 zxy = 0.e0 649 itobcm = 1 650 itobcp = 1 651 ELSE IF( itobc == 12 ) THEN 652 i15 = nday / 16 653 zxy = FLOAT( nday + 15 - 30 * i15 ) / 30. 654 ELSE 655 zxy = (zjcnes_obc(nt_a)-FLOAT(isrel)) / (zjcnes_obc(nt_a)-zjcnes_obc(nt_b)) 656 IF( zxy < 0. ) THEN ! case of extrapolation, switch to old time frames 657 itobcm = nt_m 658 itobcp = nt_b 659 zxy = (zjcnes_obc(nt_b)-FLOAT(isrel)) / (zjcnes_obc(nt_b)-zjcnes_obc(nt_m)) 660 ENDIF 661 ENDIF 662 663 IF( lp_obc_east ) THEN ! fills sshfoe, ubtfoe (local to each processor) 664 DO jj = 1, jpj 665 sshfoe(jj) = zxy * sshedta(jj,itobcp) + (1.-zxy) * sshedta(jj,itobcm) 666 ubtfoe(jj) = zxy * ubtedta(jj,itobcp) + (1.-zxy) * ubtedta(jj,itobcm) 667 vbtfoe(jj) = zxy * vbtedta(jj,itobcp) + (1.-zxy) * vbtedta(jj,itobcm) 668 END DO 669 ENDIF 670 671 IF( lp_obc_west) THEN ! fills sshfow, ubtfow (local to each processor) 672 DO jj = 1, jpj 673 sshfow(jj) = zxy * sshwdta(jj,itobcp) + (1.-zxy) * sshwdta(jj,itobcm) 674 ubtfow(jj) = zxy * ubtwdta(jj,itobcp) + (1.-zxy) * ubtwdta(jj,itobcm) 675 vbtfow(jj) = zxy * vbtwdta(jj,itobcp) + (1.-zxy) * vbtwdta(jj,itobcm) 676 END DO 677 ENDIF 678 679 IF( lp_obc_north) THEN ! fills sshfon, vbtfon (local to each processor) 680 DO ji = 1, jpi 681 sshfon(ji) = zxy * sshndta(ji,itobcp) + (1.-zxy) * sshndta(ji,itobcm) 682 ubtfon(ji) = zxy * ubtndta(ji,itobcp) + (1.-zxy) * ubtndta(ji,itobcm) 683 vbtfon(ji) = zxy * vbtndta(ji,itobcp) + (1.-zxy) * vbtndta(ji,itobcm) 684 END DO 685 ENDIF 686 687 IF( lp_obc_south) THEN ! fills sshfos, vbtfos (local to each processor) 688 DO ji = 1, jpi 689 sshfos(ji) = zxy * sshsdta(ji,itobcp) + (1.-zxy) * sshsdta(ji,itobcm) 690 ubtfos(ji) = zxy * ubtsdta(ji,itobcp) + (1.-zxy) * ubtsdta(ji,itobcm) 691 vbtfos(ji) = zxy * vbtsdta(ji,itobcp) + (1.-zxy) * vbtsdta(ji,itobcm) 692 END DO 693 ENDIF 694 695 END SUBROUTINE obc_dta_bt 696 697 # else 698 !!----------------------------------------------------------------------------- 699 !! Default option 700 !!----------------------------------------------------------------------------- 701 SUBROUTINE obc_dta_bt ( kt, kbt ) ! Empty routine 702 !! * Arguments 703 INTEGER,INTENT(in) :: kt 704 INTEGER, INTENT( in ) :: kbt ! barotropic ocean time-step index 705 WRITE(*,*) 'obc_dta_bt: You should not have seen this print! error?', kt 706 WRITE(*,*) 'obc_dta_bt: You should not have seen this print! error?', kbt 707 END SUBROUTINE obc_dta_bt 708 # endif 709 710 SUBROUTINE obc_read (kt, nt_x, ntobc_x, iyy, imm) 711 !!------------------------------------------------------------------------- 712 !! *** ROUTINE obc_read *** 713 !! 714 !! ** Purpose : Read the boundary data in files identified by iyy and imm 715 !! According to the validated open boundaries, return the 716 !! following arrays : 717 !! sedta, tedta : East OBC salinity and temperature 718 !! uedta, vedta : " " u and v velocity component 719 !! 720 !! swdta, twdta : West OBC salinity and temperature 721 !! uwdta, vwdta : " " u and v velocity component 722 !! 723 !! sndta, tndta : North OBC salinity and temperature 724 !! undta, vndta : " " u and v velocity component 725 !! 726 !! ssdta, tsdta : South OBC salinity and temperature 727 !! usdta, vsdta : " " u and v velocity component 728 !! 729 !! ** Method : These fields are read in the record ntobc_x of the files. 730 !! The number of records is already known. If ntobc_x is greater 731 !! than the number of record, this routine will look for next file, 732 !! updating the indices (case of inter-annual obcs) or loop at the 733 !! begining in case of climatological file (ln_obc_clim = true ). 734 !! ------------------------------------------------------------------------- 735 !! History: ! 2005 ( P. Mathiot, C. Langlais ) Original code 736 !! ! 2008 ( J,M, Molines ) Use IOM and cleaning 737 !!-------------------------------------------------------------------------- 738 739 ! * Arguments 740 INTEGER, INTENT( in ) :: kt, nt_x 741 INTEGER, INTENT( inout ) :: ntobc_x , iyy, imm ! yes ! inout ! 742 743 ! * Local variables 744 CHARACTER (len=40) :: & ! file names 944 745 cl_obc_eTS , cl_obc_eU, cl_obc_eV,& 945 746 cl_obc_wTS , cl_obc_wU, cl_obc_wV,& … … 947 748 cl_obc_sTS , cl_obc_sU, cl_obc_sV 948 749 949 INTEGER :: ikprint 950 REAL(wp) :: zmin, zmax ! control of boundary values 951 952 !IOM stuff 953 INTEGER :: id_e, id_w, id_n, id_s, ji, jj 954 INTEGER, DIMENSION(2) :: istart, icount 955 956 !-------------------------------------------------------------------------- 957 IF ( ntobc_x > itobc ) THEN 958 IF (ln_obc_clim) THEN ! just loop on the same file 959 ntobc_x = 1 960 ELSE 961 ! need to change file : it is always for an 'after' data 962 IF ( cffile == 'annual' ) THEN ! go to next year file 963 iyy = iyy + 1 964 ELSE IF ( cffile =='monthly' ) THEN ! go to next month file 965 imm = imm + 1 966 IF ( imm == 13 ) THEN 967 imm = 1 ; iyy = iyy + 1 968 ENDIF 969 ELSE 970 ctmp1='obcread : this type of obc file is not supported :( ' 971 ctmp2=TRIM(cffile) 972 CALL ctl_stop (ctmp1, ctmp2) 973 ! cffile should be either annual or monthly ... 974 ENDIF 975 ! as the file is changed, need to update itobc etc ... 976 CALL obc_dta_chktime (iyy,imm) 977 ntobc_x = nrecbef() + 1 ! remember : this case occur for an after data 978 ENDIF 979 ENDIF 980 981 IF ( lp_obc_east ) THEN 982 ! ... Read datafile and set temperature, salinity and normal velocity 983 ! ... initialise the sedta, tedta, uedta arrays 984 WRITE(cl_obc_eTS ,'("obc_east_TS_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 985 WRITE(cl_obc_eU ,'("obc_east_U_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 986 WRITE(cl_obc_eV ,'("obc_east_V_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 987 ! JMM this may change depending on the obc data format ... 988 istart(:)=(/nje0+njmpp-1,1/) ; icount(:)=(/nje1-nje0 +1,jpk/) 989 IF (lwp) WRITE(numout,*) 'read data in :', TRIM(cl_obc_eTS) 990 IF (nje1 >= nje0 ) THEN 991 CALL iom_open ( cl_obc_eTS , id_e ) 992 CALL iom_get ( id_e, jpdom_unknown, 'votemper', tedta(nje0:nje1,:,nt_x), & 993 & ktime=ntobc_x , kstart=istart, kcount= icount ) 994 CALL iom_get ( id_e, jpdom_unknown, 'vosaline', sedta(nje0:nje1,:,nt_x), & 995 & ktime=ntobc_x , kstart=istart, kcount= icount ) 996 CALL iom_close (id_e) 997 ! 998 CALL iom_open ( cl_obc_eU , id_e ) 999 CALL iom_get ( id_e, jpdom_unknown, 'vozocrtx', uedta(nje0:nje1,:,nt_x), & 1000 & ktime=ntobc_x , kstart=istart, kcount= icount ) 1001 CALL iom_close ( id_e ) 1002 ! 1003 CALL iom_open ( cl_obc_eV , id_e ) 1004 CALL iom_get ( id_e, jpdom_unknown, 'vomecrty', vedta(nje0:nje1,:,nt_x), & 1005 & ktime=ntobc_x , kstart=istart, kcount= icount ) 1006 CALL iom_close ( id_e ) 1007 1008 ! mask the boundary values 1009 tedta(:,:,nt_x) = tedta(:,:,nt_x)*temsk(:,:) ; sedta(:,:,nt_x) = sedta(:,:,nt_x)*temsk(:,:) 1010 uedta(:,:,nt_x) = uedta(:,:,nt_x)*uemsk(:,:) ; vedta(:,:,nt_x) = vedta(:,:,nt_x)*vemsk(:,:) 1011 1012 ! check any outliers 1013 zmin=MINVAL( sedta(:,:,nt_x), mask=ltemsk ) ; zmax=MAXVAL(sedta(:,:,nt_x), mask=ltemsk) 1014 IF ( zmin < 5 .OR. zmax > 50) THEN 1015 CALL ctl_stop('Error in sedta',' routine obcdta') 1016 ENDIF 1017 zmin=MINVAL( tedta(:,:,nt_x), mask=ltemsk ) ; zmax=MAXVAL(tedta(:,:,nt_x), mask=ltemsk) 1018 IF ( zmin < -10. .OR. zmax > 40) THEN 1019 CALL ctl_stop('Error in tedta',' routine obcdta') 1020 ENDIF 1021 zmin=MINVAL( uedta(:,:,nt_x), mask=luemsk ) ; zmax=MAXVAL(uedta(:,:,nt_x), mask=luemsk) 1022 IF ( zmin < -5. .OR. zmax > 5.) THEN 1023 CALL ctl_stop('Error in uedta',' routine obcdta') 1024 ENDIF 1025 zmin=MINVAL( vedta(:,:,nt_x), mask=lvemsk ) ; zmax=MAXVAL(vedta(:,:,nt_x), mask=lvemsk) 1026 IF ( zmin < -5. .OR. zmax > 5.) THEN 1027 CALL ctl_stop('Error in vedta',' routine obcdta') 1028 ENDIF 1029 1030 ! Usually printout is done only once at kt = nit000, unless nprint (namelist) > 1 1031 IF ( lwp .AND. ( kt == nit000 .OR. nprint /= 0 ) ) THEN 1032 WRITE(numout,*) 1033 WRITE(numout,*) ' Read East OBC data records ', ntobc_x 1034 ikprint = jpj/20 +1 1035 WRITE(numout,*) ' Temperature record 1 - printout every 3 level' 1036 CALL prihre( tedta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 1037 WRITE(numout,*) 1038 WRITE(numout,*) ' Salinity record 1 - printout every 3 level' 1039 CALL prihre( sedta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 1040 WRITE(numout,*) 1041 WRITE(numout,*) ' Normal velocity U record 1 - printout every 3 level' 1042 CALL prihre( uedta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 1043 WRITE(numout,*) 1044 WRITE(numout,*) ' Tangential velocity V record 1 - printout every 3 level' 1045 CALL prihre( vedta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 1046 ENDIF 1047 ENDIF 1048 ENDIF 750 INTEGER :: ikprint 751 REAL(wp) :: zmin, zmax ! control of boundary values 752 753 !IOM stuff 754 INTEGER :: id_e, id_w, id_n, id_s 755 INTEGER, DIMENSION(2) :: istart, icount 756 757 !-------------------------------------------------------------------------- 758 IF ( ntobc_x > itobc ) THEN 759 IF (ln_obc_clim) THEN ! just loop on the same file 760 ntobc_x = 1 761 ELSE 762 ! need to change file : it is always for an 'after' data 763 IF ( cffile == 'annual' ) THEN ! go to next year file 764 iyy = iyy + 1 765 ELSE IF ( cffile =='monthly' ) THEN ! go to next month file 766 imm = imm + 1 767 IF ( imm == 13 ) THEN 768 imm = 1 ; iyy = iyy + 1 769 ENDIF 770 ELSE 771 ctmp1='obcread : this type of obc file is not supported :( ' 772 ctmp2=TRIM(cffile) 773 CALL ctl_stop (ctmp1, ctmp2) 774 ! cffile should be either annual or monthly ... 775 ENDIF 776 ! as the file is changed, need to update itobc etc ... 777 CALL obc_dta_chktime (iyy,imm) 778 ntobc_x = nrecbef() + 1 ! remember : this case occur for an after data 779 ENDIF 780 ENDIF 781 782 IF( lp_obc_east ) THEN 783 ! ... Read datafile and set temperature, salinity and normal velocity 784 ! ... initialise the sedta, tedta, uedta arrays 785 IF(ln_obc_clim) THEN ! revert to old convention for climatological OBC forcing 786 cl_obc_eTS='obceast_TS.nc' 787 cl_obc_eU ='obceast_U.nc' 788 cl_obc_eV ='obceast_V.nc' 789 ELSE ! convention for climatological OBC 790 WRITE(cl_obc_eTS ,'("obc_east_TS_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 791 WRITE(cl_obc_eU ,'("obc_east_U_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 792 WRITE(cl_obc_eV ,'("obc_east_V_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 793 ENDIF 794 ! JMM this may change depending on the obc data format ... 795 istart(:)=(/nje0+njmpp-1,1/) ; icount(:)=(/nje1-nje0 +1,jpk/) 796 IF (lwp) WRITE(numout,*) 'read data in :', TRIM(cl_obc_eTS) 797 IF (nje1 >= nje0 ) THEN 798 CALL iom_open ( cl_obc_eTS , id_e ) 799 CALL iom_get ( id_e, jpdom_unknown, 'votemper', tedta(nje0:nje1,:,nt_x), & 800 & ktime=ntobc_x , kstart=istart, kcount= icount ) 801 CALL iom_get ( id_e, jpdom_unknown, 'vosaline', sedta(nje0:nje1,:,nt_x), & 802 & ktime=ntobc_x , kstart=istart, kcount= icount ) 803 # if defined key_dynspg_ts || defined key_dynspg_exp 804 CALL iom_get ( id_e, jpdom_unknown, 'vossurfh', sshedta(nje0:nje1,nt_x), & 805 & ktime=ntobc_x , kstart=istart, kcount= icount ) 806 # endif 807 CALL iom_close (id_e) 808 ! 809 CALL iom_open ( cl_obc_eU , id_e ) 810 CALL iom_get ( id_e, jpdom_unknown, 'vozocrtx', uedta(nje0:nje1,:,nt_x), & 811 & ktime=ntobc_x , kstart=istart, kcount= icount ) 812 CALL iom_close ( id_e ) 813 ! 814 CALL iom_open ( cl_obc_eV , id_e ) 815 CALL iom_get ( id_e, jpdom_unknown, 'vomecrty', vedta(nje0:nje1,:,nt_x), & 816 & ktime=ntobc_x , kstart=istart, kcount= icount ) 817 CALL iom_close ( id_e ) 818 819 ! mask the boundary values 820 tedta(:,:,nt_x) = tedta(:,:,nt_x)*temsk(:,:) ; sedta(:,:,nt_x) = sedta(:,:,nt_x)*temsk(:,:) 821 uedta(:,:,nt_x) = uedta(:,:,nt_x)*uemsk(:,:) ; vedta(:,:,nt_x) = vedta(:,:,nt_x)*vemsk(:,:) 822 823 ! check any outliers 824 zmin=MINVAL( sedta(:,:,nt_x), mask=ltemsk ) ; zmax=MAXVAL(sedta(:,:,nt_x), mask=ltemsk) 825 IF ( zmin < 5 .OR. zmax > 50) THEN 826 CALL ctl_stop('Error in sedta',' routine obcdta') 827 ENDIF 828 zmin=MINVAL( tedta(:,:,nt_x), mask=ltemsk ) ; zmax=MAXVAL(tedta(:,:,nt_x), mask=ltemsk) 829 IF ( zmin < -10. .OR. zmax > 40) THEN 830 CALL ctl_stop('Error in tedta',' routine obcdta') 831 ENDIF 832 zmin=MINVAL( uedta(:,:,nt_x), mask=luemsk ) ; zmax=MAXVAL(uedta(:,:,nt_x), mask=luemsk) 833 IF ( zmin < -5. .OR. zmax > 5.) THEN 834 CALL ctl_stop('Error in uedta',' routine obcdta') 835 ENDIF 836 zmin=MINVAL( vedta(:,:,nt_x), mask=lvemsk ) ; zmax=MAXVAL(vedta(:,:,nt_x), mask=lvemsk) 837 IF ( zmin < -5. .OR. zmax > 5.) THEN 838 CALL ctl_stop('Error in vedta',' routine obcdta') 839 ENDIF 840 841 ! Usually printout is done only once at kt = nit000, unless nprint (namelist) > 1 842 IF ( lwp .AND. ( kt == nit000 .OR. nprint /= 0 ) ) THEN 843 WRITE(numout,*) 844 WRITE(numout,*) ' Read East OBC data records ', ntobc_x 845 ikprint = jpj/20 +1 846 WRITE(numout,*) ' Temperature record 1 - printout every 3 level' 847 CALL prihre( tedta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 848 WRITE(numout,*) 849 WRITE(numout,*) ' Salinity record 1 - printout every 3 level' 850 CALL prihre( sedta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 851 WRITE(numout,*) 852 WRITE(numout,*) ' Normal velocity U record 1 - printout every 3 level' 853 CALL prihre( uedta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 854 WRITE(numout,*) 855 WRITE(numout,*) ' Tangential velocity V record 1 - printout every 3 level' 856 CALL prihre( vedta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 857 ENDIF 858 ENDIF 859 ENDIF 1049 860 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1050 IF ( lp_obc_west ) THEN 1051 ! ... Read datafile and set temperature, salinity and normal velocity 1052 ! ... initialise the swdta, twdta, uwdta arrays 1053 WRITE(cl_obc_wTS ,'("obc_west_TS_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 1054 WRITE(cl_obc_wU ,'("obc_west_U_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 1055 WRITE(cl_obc_wV ,'("obc_west_V_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 1056 istart(:)=(/njw0+njmpp-1,1/) ; icount(:)=(/njw1-njw0 +1,jpk/) 1057 IF (lwp) WRITE(numout,*) 'read data in :', TRIM(cl_obc_wTS) 1058 1059 IF ( njw1 >= njw0 ) THEN 1060 CALL iom_open ( cl_obc_wTS , id_w ) 1061 CALL iom_get ( id_w, jpdom_unknown, 'votemper', twdta(njw0:njw1,:,nt_x), & 1062 & ktime=ntobc_x , kstart=istart, kcount= icount ) 1063 1064 CALL iom_get ( id_w, jpdom_unknown, 'vosaline', swdta(njw0:njw1,:,nt_x), & 861 IF ( lp_obc_west ) THEN 862 ! ... Read datafile and set temperature, salinity and normal velocity 863 ! ... initialise the swdta, twdta, uwdta arrays 864 IF (ln_obc_clim) THEN ! revert to old convention for climatological OBC forcing 865 cl_obc_wTS='obcwest_TS.nc' 866 cl_obc_wU ='obcwest_U.nc' 867 cl_obc_wV ='obcwest_V.nc' 868 ELSE ! convention for climatological OBC 869 WRITE(cl_obc_wTS ,'("obc_west_TS_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 870 WRITE(cl_obc_wU ,'("obc_west_U_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 871 WRITE(cl_obc_wV ,'("obc_west_V_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 872 ENDIF 873 istart(:)=(/njw0+njmpp-1,1/) ; icount(:)=(/njw1-njw0 +1,jpk/) 874 IF (lwp) WRITE(numout,*) 'read data in :', TRIM(cl_obc_wTS) 875 876 IF ( njw1 >= njw0 ) THEN 877 CALL iom_open ( cl_obc_wTS , id_w ) 878 CALL iom_get ( id_w, jpdom_unknown, 'votemper', twdta(njw0:njw1,:,nt_x), & 879 & ktime=ntobc_x , kstart=istart, kcount= icount ) 880 881 CALL iom_get ( id_w, jpdom_unknown, 'vosaline', swdta(njw0:njw1,:,nt_x), & 1065 882 & ktime=ntobc_x , kstart=istart, kcount= icount) 1066 CALL iom_close (id_w) 1067 ! 1068 CALL iom_open ( cl_obc_wU , id_w ) 1069 CALL iom_get ( id_w, jpdom_unknown, 'vozocrtx', uwdta(njw0:njw1,:,nt_x),& 1070 & ktime=ntobc_x , kstart=istart, kcount= icount ) 1071 CALL iom_close ( id_w ) 1072 ! 1073 CALL iom_open ( cl_obc_wV , id_w ) 1074 CALL iom_get ( id_w, jpdom_unknown, 'vomecrty', vwdta(njw0:njw1,:,nt_x), & 1075 & ktime=ntobc_x , kstart=istart, kcount= icount ) 1076 CALL iom_close ( id_w ) 1077 1078 ! mask the boundary values 1079 twdta(:,:,nt_x) = twdta(:,:,nt_x)*twmsk(:,:) ; swdta(:,:,nt_x) = swdta(:,:,nt_x)*twmsk(:,:) 1080 uwdta(:,:,nt_x) = uwdta(:,:,nt_x)*uwmsk(:,:) ; vwdta(:,:,nt_x) = vwdta(:,:,nt_x)*vwmsk(:,:) 1081 1082 ! check any outliers 1083 zmin=MINVAL( swdta(:,:,nt_x), mask=ltwmsk ) ; zmax=MAXVAL(swdta(:,:,nt_x), mask=ltwmsk) 1084 IF ( zmin < 5 .OR. zmax > 50) THEN 1085 CALL ctl_stop('Error in swdta',' routine obcdta') 1086 ENDIF 1087 zmin=MINVAL( twdta(:,:,nt_x), mask=ltwmsk ) ; zmax=MAXVAL(twdta(:,:,nt_x), mask=ltwmsk) 1088 IF ( zmin < -10. .OR. zmax > 40) THEN 1089 CALL ctl_stop('Error in twdta',' routine obcdta') 1090 ENDIF 1091 zmin=MINVAL( uwdta(:,:,nt_x), mask=luwmsk ) ; zmax=MAXVAL(uwdta(:,:,nt_x), mask=luwmsk) 1092 IF ( zmin < -5. .OR. zmax > 5.) THEN 1093 CALL ctl_stop('Error in uwdta',' routine obcdta') 1094 ENDIF 1095 zmin=MINVAL( vwdta(:,:,nt_x), mask=lvwmsk ) ; zmax=MAXVAL(vwdta(:,:,nt_x), mask=lvwmsk) 1096 IF ( zmin < -5. .OR. zmax > 5.) THEN 1097 CALL ctl_stop('Error in vwdta',' routine obcdta') 1098 ENDIF 1099 1100 1101 IF ( lwp .AND. ( kt == nit000 .OR. nprint /= 0 ) ) THEN 1102 WRITE(numout,*) 1103 WRITE(numout,*) ' Read West OBC data records ', ntobc_x 1104 ikprint = jpj/20 +1 1105 WRITE(numout,*) ' Temperature record 1 - printout every 3 level' 1106 CALL prihre( twdta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 1107 WRITE(numout,*) 1108 WRITE(numout,*) ' Salinity record 1 - printout every 3 level' 1109 CALL prihre( swdta(:,:,nt_x),jpj,jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 1110 WRITE(numout,*) 1111 WRITE(numout,*) ' Normal velocity U record 1 - printout every 3 level' 1112 CALL prihre( uwdta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 1113 WRITE(numout,*) 1114 WRITE(numout,*) ' Tangential velocity V record 1 - printout every 3 level' 1115 CALL prihre( vwdta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 1116 ENDIF 1117 END IF 1118 ENDIF 883 # if defined key_dynspg_ts || defined key_dynspg_exp 884 CALL iom_get ( id_w, jpdom_unknown, 'vossurfh', sshwdta(njw0:njw1,nt_x), & 885 & ktime=ntobc_x , kstart=istart, kcount= icount ) 886 # endif 887 CALL iom_close (id_w) 888 ! 889 CALL iom_open ( cl_obc_wU , id_w ) 890 CALL iom_get ( id_w, jpdom_unknown, 'vozocrtx', uwdta(njw0:njw1,:,nt_x),& 891 & ktime=ntobc_x , kstart=istart, kcount= icount ) 892 CALL iom_close ( id_w ) 893 ! 894 CALL iom_open ( cl_obc_wV , id_w ) 895 CALL iom_get ( id_w, jpdom_unknown, 'vomecrty', vwdta(njw0:njw1,:,nt_x), & 896 & ktime=ntobc_x , kstart=istart, kcount= icount ) 897 CALL iom_close ( id_w ) 898 899 ! mask the boundary values 900 twdta(:,:,nt_x) = twdta(:,:,nt_x)*twmsk(:,:) ; swdta(:,:,nt_x) = swdta(:,:,nt_x)*twmsk(:,:) 901 uwdta(:,:,nt_x) = uwdta(:,:,nt_x)*uwmsk(:,:) ; vwdta(:,:,nt_x) = vwdta(:,:,nt_x)*vwmsk(:,:) 902 903 ! check any outliers 904 zmin=MINVAL( swdta(:,:,nt_x), mask=ltwmsk ) ; zmax=MAXVAL(swdta(:,:,nt_x), mask=ltwmsk) 905 IF ( zmin < 5 .OR. zmax > 50) THEN 906 CALL ctl_stop('Error in swdta',' routine obcdta') 907 ENDIF 908 zmin=MINVAL( twdta(:,:,nt_x), mask=ltwmsk ) ; zmax=MAXVAL(twdta(:,:,nt_x), mask=ltwmsk) 909 IF ( zmin < -10. .OR. zmax > 40) THEN 910 CALL ctl_stop('Error in twdta',' routine obcdta') 911 ENDIF 912 zmin=MINVAL( uwdta(:,:,nt_x), mask=luwmsk ) ; zmax=MAXVAL(uwdta(:,:,nt_x), mask=luwmsk) 913 IF ( zmin < -5. .OR. zmax > 5.) THEN 914 CALL ctl_stop('Error in uwdta',' routine obcdta') 915 ENDIF 916 zmin=MINVAL( vwdta(:,:,nt_x), mask=lvwmsk ) ; zmax=MAXVAL(vwdta(:,:,nt_x), mask=lvwmsk) 917 IF ( zmin < -5. .OR. zmax > 5.) THEN 918 CALL ctl_stop('Error in vwdta',' routine obcdta') 919 ENDIF 920 921 922 IF ( lwp .AND. ( kt == nit000 .OR. nprint /= 0 ) ) THEN 923 WRITE(numout,*) 924 WRITE(numout,*) ' Read West OBC data records ', ntobc_x 925 ikprint = jpj/20 +1 926 WRITE(numout,*) ' Temperature record 1 - printout every 3 level' 927 CALL prihre( twdta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 928 WRITE(numout,*) 929 WRITE(numout,*) ' Salinity record 1 - printout every 3 level' 930 CALL prihre( swdta(:,:,nt_x),jpj,jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 931 WRITE(numout,*) 932 WRITE(numout,*) ' Normal velocity U record 1 - printout every 3 level' 933 CALL prihre( uwdta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 934 WRITE(numout,*) 935 WRITE(numout,*) ' Tangential velocity V record 1 - printout every 3 level' 936 CALL prihre( vwdta(:,:,nt_x), jpj, jpk, 1, jpj, ikprint, jpk, 1, -3, 1., numout ) 937 ENDIF 938 END IF 939 ENDIF 1119 940 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1120 IF( lp_obc_north) THEN 1121 WRITE(cl_obc_nTS ,'("obc_north_TS_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 1122 WRITE(cl_obc_nV ,'("obc_north_V_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 1123 WRITE(cl_obc_nU ,'("obc_north_U_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 1124 istart(:)=(/nin0+nimpp-1,1/) ; icount(:)=(/nin1-nin0 +1,jpk/) 1125 IF (lwp) WRITE(numout,*) 'read data in :', TRIM(cl_obc_nTS) 1126 IF ( nin1 >= nin0 ) THEN 1127 CALL iom_open ( cl_obc_nTS , id_n ) 1128 CALL iom_get ( id_n, jpdom_unknown, 'votemper', tndta(nin0:nin1,:,nt_x), & 1129 & ktime=ntobc_x , kstart=istart, kcount= icount ) 1130 CALL iom_get ( id_n, jpdom_unknown, 'vosaline', sndta(nin0:nin1,:,nt_x), & 1131 & ktime=ntobc_x , kstart=istart, kcount= icount ) 1132 CALL iom_close (id_n) 1133 ! 1134 CALL iom_open ( cl_obc_nU , id_n ) 1135 CALL iom_get ( id_n, jpdom_unknown, 'vozocrtx', undta(nin0:nin1,:,nt_x), & 1136 & ktime=ntobc_x , kstart=istart, kcount= icount ) 1137 CALL iom_close ( id_n ) 1138 ! 1139 CALL iom_open ( cl_obc_nV , id_n ) 1140 CALL iom_get ( id_n, jpdom_unknown, 'vomecrty', vndta(nin0:nin1,:,nt_x), & 1141 & ktime=ntobc_x , kstart=istart, kcount= icount ) 1142 CALL iom_close ( id_n ) 1143 1144 ! mask the boundary values 1145 tndta(:,:,nt_x) = tndta(:,:,nt_x)*tnmsk(:,:) ; sndta(:,:,nt_x) = sndta(:,:,nt_x)*tnmsk(:,:) 1146 undta(:,:,nt_x) = undta(:,:,nt_x)*unmsk(:,:) ; vndta(:,:,nt_x) = vndta(:,:,nt_x)*vnmsk(:,:) 1147 1148 ! check any outliers 1149 zmin=MINVAL( sndta(:,:,nt_x), mask=ltnmsk ) ; zmax=MAXVAL(sndta(:,:,nt_x), mask=ltnmsk) 1150 IF ( zmin < 5 .OR. zmax > 50) THEN 1151 CALL ctl_stop('Error in sndta',' routine obcdta') 1152 ENDIF 1153 zmin=MINVAL( tndta(:,:,nt_x), mask=ltnmsk ) ; zmax=MAXVAL(tndta(:,:,nt_x), mask=ltnmsk) 1154 IF ( zmin < -10. .OR. zmax > 40) THEN 1155 CALL ctl_stop('Error in tndta',' routine obcdta') 1156 ENDIF 1157 zmin=MINVAL( undta(:,:,nt_x), mask=lunmsk ) ; zmax=MAXVAL(undta(:,:,nt_x), mask=lunmsk) 1158 IF ( zmin < -5. .OR. zmax > 5.) THEN 1159 CALL ctl_stop('Error in undta',' routine obcdta') 1160 ENDIF 1161 zmin=MINVAL( vndta(:,:,nt_x), mask=lvnmsk ) ; zmax=MAXVAL(vndta(:,:,nt_x), mask=lvnmsk) 1162 IF ( zmin < -5. .OR. zmax > 5.) THEN 1163 CALL ctl_stop('Error in vndta',' routine obcdta') 1164 ENDIF 1165 1166 IF ( lwp .AND. ( kt == nit000 .OR. nprint /= 0 ) ) THEN 1167 WRITE(numout,*) 1168 WRITE(numout,*) ' Read North OBC data records ', ntobc_x 1169 ikprint = jpi/20 +1 1170 WRITE(numout,*) ' Temperature record 1 - printout every 3 level' 1171 CALL prihre( tndta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 1172 WRITE(numout,*) 1173 WRITE(numout,*) ' Salinity record 1 - printout every 3 level' 1174 CALL prihre( sndta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 1175 WRITE(numout,*) 1176 WRITE(numout,*) ' Normal velocity V record 1 - printout every 3 level' 1177 CALL prihre( vndta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 1178 WRITE(numout,*) 1179 WRITE(numout,*) ' Tangential velocity U record 1 - printout every 3 level' 1180 CALL prihre( undta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 1181 ENDIF 1182 ENDIF 1183 ENDIF 941 IF( lp_obc_north) THEN 942 IF(ln_obc_clim) THEN ! revert to old convention for climatological OBC forcing 943 cl_obc_nTS='obcnorth_TS.nc' 944 cl_obc_nU ='obcnorth_U.nc' 945 cl_obc_nV ='obcnorth_V.nc' 946 ELSE ! convention for climatological OBC 947 WRITE(cl_obc_nTS ,'("obc_north_TS_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 948 WRITE(cl_obc_nV ,'("obc_north_V_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 949 WRITE(cl_obc_nU ,'("obc_north_U_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 950 ENDIF 951 istart(:)=(/nin0+nimpp-1,1/) ; icount(:)=(/nin1-nin0 +1,jpk/) 952 IF (lwp) WRITE(numout,*) 'read data in :', TRIM(cl_obc_nTS) 953 IF ( nin1 >= nin0 ) THEN 954 CALL iom_open ( cl_obc_nTS , id_n ) 955 CALL iom_get ( id_n, jpdom_unknown, 'votemper', tndta(nin0:nin1,:,nt_x), & 956 & ktime=ntobc_x , kstart=istart, kcount= icount ) 957 CALL iom_get ( id_n, jpdom_unknown, 'vosaline', sndta(nin0:nin1,:,nt_x), & 958 & ktime=ntobc_x , kstart=istart, kcount= icount ) 959 # if defined key_dynspg_ts || defined key_dynspg_exp 960 CALL iom_get ( id_n, jpdom_unknown, 'vossurfh', sshndta(nin0:nin1,nt_x), & 961 & ktime=ntobc_x , kstart=istart, kcount= icount ) 962 # endif 963 CALL iom_close (id_n) 964 ! 965 CALL iom_open ( cl_obc_nU , id_n ) 966 CALL iom_get ( id_n, jpdom_unknown, 'vozocrtx', undta(nin0:nin1,:,nt_x), & 967 & ktime=ntobc_x , kstart=istart, kcount= icount ) 968 CALL iom_close ( id_n ) 969 ! 970 CALL iom_open ( cl_obc_nV , id_n ) 971 CALL iom_get ( id_n, jpdom_unknown, 'vomecrty', vndta(nin0:nin1,:,nt_x), & 972 & ktime=ntobc_x , kstart=istart, kcount= icount ) 973 CALL iom_close ( id_n ) 974 975 ! mask the boundary values 976 tndta(:,:,nt_x) = tndta(:,:,nt_x)*tnmsk(:,:) ; sndta(:,:,nt_x) = sndta(:,:,nt_x)*tnmsk(:,:) 977 undta(:,:,nt_x) = undta(:,:,nt_x)*unmsk(:,:) ; vndta(:,:,nt_x) = vndta(:,:,nt_x)*vnmsk(:,:) 978 979 ! check any outliers 980 zmin=MINVAL( sndta(:,:,nt_x), mask=ltnmsk ) ; zmax=MAXVAL(sndta(:,:,nt_x), mask=ltnmsk) 981 IF ( zmin < 5 .OR. zmax > 50) THEN 982 CALL ctl_stop('Error in sndta',' routine obcdta') 983 ENDIF 984 zmin=MINVAL( tndta(:,:,nt_x), mask=ltnmsk ) ; zmax=MAXVAL(tndta(:,:,nt_x), mask=ltnmsk) 985 IF ( zmin < -10. .OR. zmax > 40) THEN 986 CALL ctl_stop('Error in tndta',' routine obcdta') 987 ENDIF 988 zmin=MINVAL( undta(:,:,nt_x), mask=lunmsk ) ; zmax=MAXVAL(undta(:,:,nt_x), mask=lunmsk) 989 IF ( zmin < -5. .OR. zmax > 5.) THEN 990 CALL ctl_stop('Error in undta',' routine obcdta') 991 ENDIF 992 zmin=MINVAL( vndta(:,:,nt_x), mask=lvnmsk ) ; zmax=MAXVAL(vndta(:,:,nt_x), mask=lvnmsk) 993 IF ( zmin < -5. .OR. zmax > 5.) THEN 994 CALL ctl_stop('Error in vndta',' routine obcdta') 995 ENDIF 996 997 IF ( lwp .AND. ( kt == nit000 .OR. nprint /= 0 ) ) THEN 998 WRITE(numout,*) 999 WRITE(numout,*) ' Read North OBC data records ', ntobc_x 1000 ikprint = jpi/20 +1 1001 WRITE(numout,*) ' Temperature record 1 - printout every 3 level' 1002 CALL prihre( tndta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 1003 WRITE(numout,*) 1004 WRITE(numout,*) ' Salinity record 1 - printout every 3 level' 1005 CALL prihre( sndta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 1006 WRITE(numout,*) 1007 WRITE(numout,*) ' Normal velocity V record 1 - printout every 3 level' 1008 CALL prihre( vndta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 1009 WRITE(numout,*) 1010 WRITE(numout,*) ' Tangential velocity U record 1 - printout every 3 level' 1011 CALL prihre( undta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 1012 ENDIF 1013 ENDIF 1014 ENDIF 1184 1015 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1185 IF( lp_obc_south) THEN 1186 WRITE(cl_obc_sTS ,'("obc_south_TS_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 1187 WRITE(cl_obc_sV ,'("obc_south_V_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 1188 WRITE(cl_obc_sU ,'("obc_south_U_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 1189 istart(:)=(/nis0+nimpp-1,1/) ; icount(:)=(/nis1-nis0 +1,jpk/) 1190 IF (lwp) WRITE(numout,*) 'read data in :', TRIM(cl_obc_sTS) 1191 IF ( nis1 >= nis0 ) THEN 1192 CALL iom_open ( cl_obc_sTS , id_s ) 1193 CALL iom_get ( id_s, jpdom_unknown, 'votemper', tsdta(nis0:nis1,:,nt_x), & 1194 & ktime=ntobc_x , kstart=istart, kcount= icount ) 1195 CALL iom_get ( id_s, jpdom_unknown, 'vosaline', ssdta(nis0:nis1,:,nt_x), & 1196 & ktime=ntobc_x , kstart=istart, kcount= icount ) 1197 CALL iom_close (id_s) 1198 ! 1199 CALL iom_open ( cl_obc_sU , id_s ) 1200 CALL iom_get ( id_s, jpdom_unknown, 'vozocrtx', usdta(nis0:nis1,:,nt_x), & 1201 & ktime=ntobc_x , kstart=istart, kcount= icount ) 1202 CALL iom_close ( id_s ) 1203 ! 1204 CALL iom_open ( cl_obc_sV , id_s ) 1205 CALL iom_get ( id_s, jpdom_unknown, 'vomecrty', vsdta(nis0:nis1,:,nt_x), & 1206 & ktime=ntobc_x , kstart=istart, kcount= icount ) 1207 CALL iom_close ( id_s ) 1208 1209 ! mask the boundary values 1210 tsdta(:,:,nt_x) = tsdta(:,:,nt_x)*tsmsk(:,:) ; ssdta(:,:,nt_x) = ssdta(:,:,nt_x)*tsmsk(:,:) 1211 usdta(:,:,nt_x) = usdta(:,:,nt_x)*usmsk(:,:) ; vsdta(:,:,nt_x) = vsdta(:,:,nt_x)*vsmsk(:,:) 1212 1213 ! check any outliers 1214 zmin=MINVAL( ssdta(:,:,nt_x), mask=ltsmsk ) ; zmax=MAXVAL(ssdta(:,:,nt_x), mask=ltsmsk) 1215 IF ( zmin < 5 .OR. zmax > 50) THEN 1216 CALL ctl_stop('Error in ssdta',' routine obcdta') 1217 ENDIF 1218 zmin=MINVAL( tsdta(:,:,nt_x), mask=ltsmsk ) ; zmax=MAXVAL(tsdta(:,:,nt_x), mask=ltsmsk) 1219 IF ( zmin < -10. .OR. zmax > 40) THEN 1220 CALL ctl_stop('Error in tsdta',' routine obcdta') 1221 ENDIF 1222 zmin=MINVAL( usdta(:,:,nt_x), mask=lusmsk ) ; zmax=MAXVAL(usdta(:,:,nt_x), mask=lusmsk) 1223 IF ( zmin < -5. .OR. zmax > 5.) THEN 1224 CALL ctl_stop('Error in usdta',' routine obcdta') 1225 ENDIF 1226 zmin=MINVAL( vsdta(:,:,nt_x), mask=lvsmsk ) ; zmax=MAXVAL(vsdta(:,:,nt_x), mask=lvsmsk) 1227 IF ( zmin < -5. .OR. zmax > 5.) THEN 1228 CALL ctl_stop('Error in vsdta',' routine obcdta') 1229 ENDIF 1230 1231 IF ( lwp .AND. ( kt == nit000 .OR. nprint /= 0 ) ) THEN 1232 WRITE(numout,*) 1233 WRITE(numout,*) ' Read South OBC data records ', ntobc_x 1234 ikprint = jpi/20 +1 1235 WRITE(numout,*) ' Temperature record 1 - printout every 3 level' 1236 CALL prihre( tsdta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 1237 WRITE(numout,*) 1238 WRITE(numout,*) ' Salinity record 1 - printout every 3 level' 1239 CALL prihre( ssdta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 1240 WRITE(numout,*) 1241 WRITE(numout,*) ' Normal velocity V record 1 - printout every 3 level' 1242 CALL prihre( vsdta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 1243 WRITE(numout,*) 1244 WRITE(numout,*) ' Tangential velocity U record 1 - printout every 3 level' 1245 CALL prihre( usdta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 1246 ENDIF 1247 ENDIF 1248 ENDIF 1016 IF( lp_obc_south) THEN 1017 IF(ln_obc_clim) THEN ! revert to old convention for climatological OBC forcing 1018 cl_obc_sTS='obcsouth_TS.nc' 1019 cl_obc_sU ='obcsouth_U.nc' 1020 cl_obc_sV ='obcsouth_V.nc' 1021 ELSE ! convention for climatological OBC 1022 WRITE(cl_obc_sTS ,'("obc_south_TS_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 1023 WRITE(cl_obc_sV ,'("obc_south_V_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 1024 WRITE(cl_obc_sU ,'("obc_south_U_y" ,i4.4,"m",i2.2,".nc")' ) iyy,imm 1025 ENDIF 1026 istart(:)=(/nis0+nimpp-1,1/) ; icount(:)=(/nis1-nis0 +1,jpk/) 1027 IF (lwp) WRITE(numout,*) 'read data in :', TRIM(cl_obc_sTS) 1028 IF ( nis1 >= nis0 ) THEN 1029 CALL iom_open ( cl_obc_sTS , id_s ) 1030 CALL iom_get ( id_s, jpdom_unknown, 'votemper', tsdta(nis0:nis1,:,nt_x), & 1031 & ktime=ntobc_x , kstart=istart, kcount= icount ) 1032 CALL iom_get ( id_s, jpdom_unknown, 'vosaline', ssdta(nis0:nis1,:,nt_x), & 1033 & ktime=ntobc_x , kstart=istart, kcount= icount ) 1034 # if defined key_dynspg_ts || defined key_dynspg_exp 1035 CALL iom_get ( id_s, jpdom_unknown, 'vossurfh', sshsdta(nis0:nis1,nt_x), & 1036 & ktime=ntobc_x , kstart=istart, kcount= icount ) 1037 # endif 1038 CALL iom_close (id_s) 1039 ! 1040 CALL iom_open ( cl_obc_sU , id_s ) 1041 CALL iom_get ( id_s, jpdom_unknown, 'vozocrtx', usdta(nis0:nis1,:,nt_x), & 1042 & ktime=ntobc_x , kstart=istart, kcount= icount ) 1043 CALL iom_close ( id_s ) 1044 ! 1045 CALL iom_open ( cl_obc_sV , id_s ) 1046 CALL iom_get ( id_s, jpdom_unknown, 'vomecrty', vsdta(nis0:nis1,:,nt_x), & 1047 & ktime=ntobc_x , kstart=istart, kcount= icount ) 1048 CALL iom_close ( id_s ) 1049 1050 ! mask the boundary values 1051 tsdta(:,:,nt_x) = tsdta(:,:,nt_x)*tsmsk(:,:) ; ssdta(:,:,nt_x) = ssdta(:,:,nt_x)*tsmsk(:,:) 1052 usdta(:,:,nt_x) = usdta(:,:,nt_x)*usmsk(:,:) ; vsdta(:,:,nt_x) = vsdta(:,:,nt_x)*vsmsk(:,:) 1053 1054 ! check any outliers 1055 zmin=MINVAL( ssdta(:,:,nt_x), mask=ltsmsk ) ; zmax=MAXVAL(ssdta(:,:,nt_x), mask=ltsmsk) 1056 IF ( zmin < 5 .OR. zmax > 50) THEN 1057 CALL ctl_stop('Error in ssdta',' routine obcdta') 1058 ENDIF 1059 zmin=MINVAL( tsdta(:,:,nt_x), mask=ltsmsk ) ; zmax=MAXVAL(tsdta(:,:,nt_x), mask=ltsmsk) 1060 IF ( zmin < -10. .OR. zmax > 40) THEN 1061 CALL ctl_stop('Error in tsdta',' routine obcdta') 1062 ENDIF 1063 zmin=MINVAL( usdta(:,:,nt_x), mask=lusmsk ) ; zmax=MAXVAL(usdta(:,:,nt_x), mask=lusmsk) 1064 IF ( zmin < -5. .OR. zmax > 5.) THEN 1065 CALL ctl_stop('Error in usdta',' routine obcdta') 1066 ENDIF 1067 zmin=MINVAL( vsdta(:,:,nt_x), mask=lvsmsk ) ; zmax=MAXVAL(vsdta(:,:,nt_x), mask=lvsmsk) 1068 IF ( zmin < -5. .OR. zmax > 5.) THEN 1069 CALL ctl_stop('Error in vsdta',' routine obcdta') 1070 ENDIF 1071 1072 IF ( lwp .AND. ( kt == nit000 .OR. nprint /= 0 ) ) THEN 1073 WRITE(numout,*) 1074 WRITE(numout,*) ' Read South OBC data records ', ntobc_x 1075 ikprint = jpi/20 +1 1076 WRITE(numout,*) ' Temperature record 1 - printout every 3 level' 1077 CALL prihre( tsdta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 1078 WRITE(numout,*) 1079 WRITE(numout,*) ' Salinity record 1 - printout every 3 level' 1080 CALL prihre( ssdta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 1081 WRITE(numout,*) 1082 WRITE(numout,*) ' Normal velocity V record 1 - printout every 3 level' 1083 CALL prihre( vsdta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 1084 WRITE(numout,*) 1085 WRITE(numout,*) ' Tangential velocity U record 1 - printout every 3 level' 1086 CALL prihre( usdta(:,:,nt_x), jpi, jpk, 1, jpi, ikprint, jpk, 1, -3, 1., numout ) 1087 ENDIF 1088 ENDIF 1089 ENDIF 1090 1091 # if defined key_dynspg_ts || defined key_dynspg_exp 1092 CALL obc_depth_average(nt_x) ! computation of depth-averaged velocity 1093 # endif 1094 1249 1095 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1250 END SUBROUTINE obc_read1251 1252 INTEGER FUNCTION nrecbef()1096 END SUBROUTINE obc_read 1097 1098 INTEGER FUNCTION nrecbef() 1253 1099 !!----------------------------------------------------------------------- 1254 1100 !! *** FUNCTION nrecbef *** … … 1261 1107 INTEGER :: it , idum 1262 1108 1263 idum = itobc 1264 DO it =1, itobc 1265 IF ( ztcobc(it) > zjcnes ) THEN ; idum = it - 1 ; EXIT ; ENDIF 1266 ENDDO 1267 ! idum can be 0 (climato, before first record) 1268 IF ( idum == 0 ) THEN 1269 IF ( ln_obc_clim ) THEN 1270 idum = itobc 1271 ELSE 1272 ctmp1='obc_dta: find ntobc == 0 for non climatological file ' 1273 ctmp2='consider adding a first record in your data file ' 1274 CALL ctl_stop(ctmp1, ctmp2) 1275 ENDIF 1276 ENDIF 1277 ! idum can be itobc ( zjcnes > ztcobc (itobc) ) 1278 ! This is not a problem ... 1279 nrecbef = idum 1280 1281 END FUNCTION nrecbef 1109 idum = itobc 1110 DO it =1, itobc 1111 IF ( ztcobc(it) > zjcnes ) THEN ; idum = it - 1 ; EXIT ; ENDIF 1112 ENDDO 1113 ! idum can be 0 (climato, before first record) 1114 IF ( idum == 0 ) THEN 1115 IF ( ln_obc_clim ) THEN 1116 idum = itobc 1117 ELSE 1118 ctmp1='obc_dta: find ntobc == 0 for non climatological file ' 1119 ctmp2='consider adding a first record in your data file ' 1120 CALL ctl_stop(ctmp1, ctmp2) 1121 ENDIF 1122 ENDIF 1123 ! idum can be itobc ( zjcnes > ztcobc (itobc) ) 1124 ! This is not a problem ... 1125 nrecbef = idum 1126 1127 END FUNCTION nrecbef 1128 1129 !!============================================================================== 1130 SUBROUTINE obc_depth_average(nt_x) 1131 !!----------------------------------------------------------------------- 1132 !! *** ROUTINE obc_depth_average *** 1133 !! 1134 !! Purpose : - compute the depth-averaged velocity from depth-dependent OBC frames 1135 !! 1136 !! History : 2009-01 : ( Fred Dupont ) Original code 1137 !!----------------------------------------------------------------------- 1138 1139 ! * Arguments 1140 INTEGER, INTENT( in ) :: nt_x 1141 1142 ! * Local variables 1143 INTEGER :: ji, jj, jk 1144 1145 1146 IF( lp_obc_east ) THEN 1147 ! initialisation to zero 1148 ubtedta(:,nt_x) = 0.e0 1149 vbtedta(:,nt_x) = 0.e0 1150 DO ji = nie0, nie1 1151 DO jj = 1, jpj 1152 DO jk = 1, jpkm1 1153 ubtedta(jj,nt_x) = ubtedta(jj,nt_x) + uedta(jj,jk,nt_x)*fse3u(ji,jj,jk) 1154 vbtedta(jj,nt_x) = vbtedta(jj,nt_x) + vedta(jj,jk,nt_x)*fse3v(ji+1,jj,jk) 1155 END DO 1156 END DO 1157 END DO 1158 ENDIF 1159 1160 IF( lp_obc_west) THEN 1161 ! initialisation to zero 1162 ubtwdta(:,nt_x) = 0.e0 1163 vbtwdta(:,nt_x) = 0.e0 1164 DO ji = niw0, niw1 1165 DO jj = 1, jpj 1166 DO jk = 1, jpkm1 1167 ubtwdta(jj,nt_x) = ubtwdta(jj,nt_x) + uwdta(jj,jk,1)*fse3u(ji,jj,jk) 1168 vbtwdta(jj,nt_x) = vbtwdta(jj,nt_x) + vwdta(jj,jk,1)*fse3v(ji,jj,jk) 1169 END DO 1170 END DO 1171 END DO 1172 ENDIF 1173 1174 IF( lp_obc_north) THEN 1175 ! initialisation to zero 1176 ubtndta(:,nt_x) = 0.e0 1177 vbtndta(:,nt_x) = 0.e0 1178 DO jj = njn0, njn1 1179 DO ji = 1, jpi 1180 DO jk = 1, jpkm1 1181 ubtndta(ji,nt_x) = ubtndta(ji,nt_x) + undta(ji,jk,nt_x)*fse3u(ji,jj+1,jk) 1182 vbtndta(ji,nt_x) = vbtndta(ji,nt_x) + vndta(ji,jk,nt_x)*fse3v(ji,jj,jk) 1183 END DO 1184 END DO 1185 END DO 1186 ENDIF 1187 1188 IF( lp_obc_south) THEN 1189 ! initialisation to zero 1190 ubtsdta(:,nt_x) = 0.e0 1191 vbtsdta(:,nt_x) = 0.e0 1192 DO jj = njs0, njs1 1193 DO ji = nis0, nis1 1194 DO jk = 1, jpkm1 1195 ubtsdta(ji,nt_x) = ubtsdta(ji,nt_x) + usdta(ji,jk,nt_x)*fse3u(ji,jj,jk) 1196 vbtsdta(ji,nt_x) = vbtsdta(ji,nt_x) + vsdta(ji,jk,nt_x)*fse3v(ji,jj,jk) 1197 END DO 1198 END DO 1199 END DO 1200 ENDIF 1201 1202 END SUBROUTINE obc_depth_average 1282 1203 1283 1204 #else 1284 !!------------------------------------------------------------------------------1285 !! default option: Dummy module NO Open Boundary Conditions1286 !!------------------------------------------------------------------------------1287 CONTAINS1288 SUBROUTINE obc_dta( kt ) ! Dummy routine1289 INTEGER, INTENT (in) :: kt1290 WRITE(*,*) 'obc_dta: You should not have seen this print! error?', kt1291 END SUBROUTINE obc_dta1205 !!------------------------------------------------------------------------------ 1206 !! default option: Dummy module NO Open Boundary Conditions 1207 !!------------------------------------------------------------------------------ 1208 CONTAINS 1209 SUBROUTINE obc_dta( kt ) ! Dummy routine 1210 INTEGER, INTENT (in) :: kt 1211 WRITE(*,*) 'obc_dta: You should not have seen this print! error?', kt 1212 END SUBROUTINE obc_dta 1292 1213 #endif 1293 END MODULE obcdta1214 END MODULE obcdta -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/OBC/obcdyn_bt.F90
r1152 r2201 23 23 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 24 24 USE lib_mpp ! distributed memory computing 25 USE obc cli ! ocean open boundary conditions: climatology25 USE obcdta ! ocean open boundary conditions 26 26 USE in_out_manager ! I/O manager 27 27 USE dynspg_oce ! surface pressure gradient (free surface with time-splitting) … … 99 99 !! * Local declaration 100 100 INTEGER :: ji, jj, jk ! dummy loop indices 101 REAL(wp) :: z05cx, ztau, zin102 101 !!------------------------------------------------------------------------------ 103 102 … … 134 133 !! * Local declaration 135 134 INTEGER :: ji, jj, jk ! dummy loop indices 136 REAL(wp) :: z05cx, ztau, zin137 135 !!------------------------------------------------------------------------------ 138 136 … … 166 164 !! * Local declaration 167 165 INTEGER :: ji, jj, jk ! dummy loop indices 168 REAL(wp) :: z05cx, ztau, zin169 166 !!------------------------------------------------------------------------------ 170 167 … … 200 197 !! * Local declaration 201 198 INTEGER :: ji, jj, jk ! dummy loop indices 202 REAL(wp) :: z05cx, ztau, zin203 199 204 200 !!------------------------------------------------------------------------------ … … 235 231 !! * Local declaration 236 232 INTEGER :: ji, jj, jk ! dummy loop indices 237 REAL(wp) :: z05cx, ztau, zin238 233 !!------------------------------------------------------------------------------ 239 234 … … 268 263 !! * Local declaration 269 264 INTEGER :: ji, jj, jk ! dummy loop indices 270 REAL(wp) :: z05cx, ztau, zin271 265 !!------------------------------------------------------------------------------ 272 266 … … 298 292 !! * Local declaration 299 293 INTEGER :: ji, jj, jk ! dummy loop indices 300 REAL(wp) :: z05cx, ztau, zin301 294 !!------------------------------------------------------------------------------ 302 295 … … 330 323 !! * Local declaration 331 324 INTEGER :: ji, jj, jk ! dummy loop indices 332 REAL(wp) :: z05cx, ztau, zin333 325 334 326 !!------------------------------------------------------------------------------ -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/OBC/obcfla.F90
r1152 r2201 78 78 !!------------------------------------------------------------------------------ 79 79 !! * Local declaration 80 INTEGER :: ji, jj , jk! dummy loop indices80 INTEGER :: ji, jj ! dummy loop indices 81 81 !!------------------------------------------------------------------------------ 82 82 83 83 DO ji = nie0, nie1 84 DO jk = 1, jpkm1 85 DO jj = 1, jpj 86 ua_e(ji,jj) = ( ubtfoe(jj) + sqrt( grav*hu(ji,jj) ) & 87 & * ( ( sshn_e(ji,jj) + sshn_e(ji+1,jj) ) * 0.5 & 88 & - sshfoe(jj) ) ) * uemsk(jj,jk) 89 END DO 84 DO jj = 1, jpj 85 ua_e(ji,jj) = ( ubtfoe(jj) * hur(ji,jj) + sqrt( grav*hur(ji,jj) ) & 86 & * ( ( sshn_e(ji,jj) + sshn_e(ji+1,jj) ) * 0.5 & 87 & - sshfoe(jj) ) ) * uemsk(jj,1) 90 88 END DO 91 89 END DO … … 97 95 ssha_e(ji,jj) = ssha_e(ji,jj) * ( 1. - temsk(jj,1) ) & 98 96 & + temsk(jj,1) * sshfoe(jj) 99 va_e(ji,jj) = vbtfoe(jj) * uemsk(jj,jk)97 va_e(ji,jj) = vbtfoe(jj) * hvr(ji,jj) * uemsk(jj,1) 100 98 END DO 101 99 END DO … … 116 114 !!------------------------------------------------------------------------------ 117 115 !! * Local declaration 118 INTEGER :: ji, jj , jk! dummy loop indices116 INTEGER :: ji, jj ! dummy loop indices 119 117 !!------------------------------------------------------------------------------ 120 118 121 119 DO ji = niw0, niw1 122 DO jk = 1, jpkm1 123 DO jj = 1, jpj 124 ua_e(ji,jj) = ( ubtfow(jj) - sqrt( grav * hu(ji,jj) ) & 125 & * ( ( sshn_e(ji,jj) + sshn_e(ji+1,jj) ) * 0.5 & 126 & - sshfow(jj) ) ) * uwmsk(jj,jk) 127 va_e(ji,jj) = vbtfow(jj) * uwmsk(jj,jk) 128 END DO 120 DO jj = 1, jpj 121 ua_e(ji,jj) = ( ubtfow(jj) * hur(ji,jj) - sqrt( grav * hur(ji,jj) ) & 122 & * ( ( sshn_e(ji,jj) + sshn_e(ji+1,jj) ) * 0.5 & 123 & - sshfow(jj) ) ) * uwmsk(jj,1) 124 va_e(ji,jj) = vbtfow(jj) * hvr(ji,jj) * uwmsk(jj,1) 129 125 END DO 130 126 DO jj = 1, jpj … … 151 147 !!------------------------------------------------------------------------------ 152 148 !! * Local declaration 153 INTEGER :: ji, jj , jk! dummy loop indices149 INTEGER :: ji, jj ! dummy loop indices 154 150 !!------------------------------------------------------------------------------ 155 151 156 152 DO jj = njn0, njn1 157 DO jk = 1, jpkm1 158 DO ji = 1, jpi 159 va_e(ji,jj) = ( vbtfon(ji) + sqrt( grav * hv(ji,jj) ) & 160 & * ( ( sshn_e(ji,jj) + sshn_e(ji,jj+1) ) * 0.5 & 161 & - sshfon(ji) ) ) * vnmsk(ji,jk) 162 END DO 153 DO ji = 1, jpi 154 va_e(ji,jj) = ( vbtfon(ji) * hvr(ji,jj) + sqrt( grav * hvr(ji,jj) ) & 155 & * ( ( sshn_e(ji,jj) + sshn_e(ji,jj+1) ) * 0.5 & 156 & - sshfon(ji) ) ) * vnmsk(ji,1) 163 157 END DO 164 158 END DO … … 170 164 ssha_e(ji,jj) = ssha_e(ji,jj) * ( 1. - tnmsk(ji,1) ) & 171 165 & + sshfon(ji) * tnmsk(ji,1) 172 ua_e(ji,jj) = ubtfon(ji) * vnmsk(ji,jk)166 ua_e(ji,jj) = ubtfon(ji) * hur(ji,jj) * vnmsk(ji,1) 173 167 END DO 174 168 END DO … … 188 182 !!------------------------------------------------------------------------------ 189 183 !! * Local declaration 190 INTEGER :: ji, jj , jk! dummy loop indices184 INTEGER :: ji, jj ! dummy loop indices 191 185 192 186 !!------------------------------------------------------------------------------ 193 187 194 188 DO jj = njs0, njs1 195 DO jk = 1, jpkm1 196 DO ji = 1, jpi 197 va_e(ji,jj) = ( vbtfos(ji) - sqrt( grav * hv(ji,jj) ) & 198 & * ( ( sshn_e(ji,jj) + sshn_e(ji,jj+1) ) * 0.5 & 199 & - sshfos(ji) ) ) * vsmsk(ji,jk) 200 ua_e(ji,jj) = ubtfos(ji) * vsmsk(ji,jk) 201 END DO 189 DO ji = 1, jpi 190 va_e(ji,jj) = ( vbtfos(ji) * hvr(ji,jj) - sqrt( grav * hvr(ji,jj) ) & 191 & * ( ( sshn_e(ji,jj) + sshn_e(ji,jj+1) ) * 0.5 & 192 & - sshfos(ji) ) ) * vsmsk(ji,1) 193 ua_e(ji,jj) = ubtfos(ji) * hur(ji,jj) * vsmsk(ji,1) 202 194 END DO 203 195 DO ji = 1, jpi -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/OBC/obcini.F90
r1818 r2201 62 62 NAMELIST/namobc/ rn_dpein, rn_dpwin, rn_dpnin, rn_dpsin, & 63 63 & rn_dpeob, rn_dpwob, rn_dpnob, rn_dpsob, & 64 & rn_volemp, nn_obcdta, cn_obcdta, rn_volemp,&64 & rn_volemp, nn_obcdta, cn_obcdta, & 65 65 & ln_obc_clim, ln_vol_cst, ln_obc_fla 66 66 !!---------------------------------------------------------------------- … … 149 149 ENDIF 150 150 151 IF( nbobc /= 0.AND. jperio /= 0 ) &151 IF( nbobc >= 2 .AND. jperio /= 0 ) & 152 152 & CALL ctl_stop( ' Cyclic or symmetric, and open boundary condition are not compatible' ) 153 153 … … 375 375 END IF 376 376 377 IF ( ln_vol_cst .OR. lk_dynspg_flt ) THEN 378 ! ... Initialize obcumask and obcvmask for the Force filtering 379 ! boundary condition in dynspg_flt 380 obcumask(:,:) = umask(:,:,1) 381 obcvmask(:,:) = vmask(:,:,1) 382 383 ! ... Initialize obctmsk on overlap region and obcs. This mask 384 ! is used in obcvol.F90 to calculate cumulate flux E-P. 385 ! obc Tracer point are outside the domain ( U/V obc points) ==> masked by obctmsk 386 ! - no flux E-P on obcs and overlap region (jpreci = jprecj = 1) 387 obctmsk(:,:) = tmask_i(:,:) 388 389 IF( lp_obc_east ) THEN 390 ! ... East obc Force filtering mask for the grad D 391 obcumask(nie0 :nie1 ,nje0p1:nje1m1) = 0.e0 392 obcvmask(nie0p1:nie1p1,nje0p1:nje1m1) = 0.e0 393 ! ... set to 0 on East OBC 394 obctmsk(nie0p1:nie1p1,nje0:nje1) = 0.e0 395 END IF 396 397 IF( lp_obc_west ) THEN 398 ! ... West obc Force filtering mask for the grad D 399 obcumask(niw0:niw1,njw0:njw1) = 0.e0 400 obcvmask(niw0:niw1,njw0:njw1) = 0.e0 401 ! ... set to 0 on West OBC 402 obctmsk(niw0:niw1,njw0:njw1) = 0.e0 403 END IF 404 405 IF( lp_obc_north ) THEN 406 ! ... North obc Force filtering mask for the grad D 407 obcumask(nin0p1:nin1m1,njn0p1:njn1p1) = 0.e0 408 obcvmask(nin0p1:nin1m1,njn0 :njn1 ) = 0.e0 409 ! ... set to 0 on North OBC 410 obctmsk(nin0:nin1,njn0p1:njn1p1) = 0.e0 411 END IF 412 413 IF( lp_obc_south ) THEN 414 ! ... South obc Force filtering mask for the grad D 415 obcumask(nis0p1:nis1m1,njs0:njs1) = 0.e0 416 obcvmask(nis0p1:nis1m1,njs0:njs1) = 0.e0 417 ! ... set to 0 on South OBC 418 obctmsk(nis0:nis1,njs0:njs1) = 0.e0 419 END IF 420 ENDIF 421 422 IF ( ln_vol_cst .OR. lk_dynspg_flt ) THEN 423 424 ! 3.1 Total lateral surface 425 ! ------------------------- 426 obcsurftot = 0.e0 427 428 IF( lp_obc_east ) THEN ! ... East open boundary lateral surface 429 DO ji = nie0, nie1 430 DO jj = 1, jpj 431 obcsurftot = obcsurftot+hu(ji,jj)*e2u(ji,jj)*uemsk(jj,1) * MAX(obctmsk(ji,jj),obctmsk(ji+1,jj) ) 432 END DO 377 ! ... Initialize obcumask and obcvmask for the Force filtering 378 ! boundary condition in dynspg_flt 379 obcumask(:,:) = umask(:,:,1) 380 obcvmask(:,:) = vmask(:,:,1) 381 382 ! ... Initialize obctmsk on overlap region and obcs. This mask 383 ! is used in obcvol.F90 to calculate cumulate flux E-P. 384 ! obc Tracer point are outside the domain ( U/V obc points) ==> masked by obctmsk 385 ! - no flux E-P on obcs and overlap region (jpreci = jprecj = 1) 386 obctmsk(:,:) = tmask_i(:,:) 387 388 IF( lp_obc_east ) THEN 389 ! ... East obc Force filtering mask for the grad D 390 obcumask(nie0 :nie1 ,nje0p1:nje1m1) = 0.e0 391 obcvmask(nie0p1:nie1p1,nje0p1:nje1m1) = 0.e0 392 ! ... set to 0 on East OBC 393 obctmsk(nie0p1:nie1p1,nje0:nje1) = 0.e0 394 END IF 395 396 IF( lp_obc_west ) THEN 397 ! ... West obc Force filtering mask for the grad D 398 obcumask(niw0:niw1,njw0:njw1) = 0.e0 399 obcvmask(niw0:niw1,njw0:njw1) = 0.e0 400 ! ... set to 0 on West OBC 401 obctmsk(niw0:niw1,njw0:njw1) = 0.e0 402 END IF 403 404 IF( lp_obc_north ) THEN 405 ! ... North obc Force filtering mask for the grad D 406 obcumask(nin0p1:nin1m1,njn0p1:njn1p1) = 0.e0 407 obcvmask(nin0p1:nin1m1,njn0 :njn1 ) = 0.e0 408 ! ... set to 0 on North OBC 409 obctmsk(nin0:nin1,njn0p1:njn1p1) = 0.e0 410 END IF 411 412 IF( lp_obc_south ) THEN 413 ! ... South obc Force filtering mask for the grad D 414 obcumask(nis0p1:nis1m1,njs0:njs1) = 0.e0 415 obcvmask(nis0p1:nis1m1,njs0:njs1) = 0.e0 416 ! ... set to 0 on South OBC 417 obctmsk(nis0:nis1,njs0:njs1) = 0.e0 418 END IF 419 420 ! 3.1 Total lateral surface 421 ! ------------------------- 422 obcsurftot = 0.e0 423 424 IF( lp_obc_east ) THEN ! ... East open boundary lateral surface 425 DO ji = nie0, nie1 426 DO jj = 1, jpj 427 obcsurftot = obcsurftot+hu(ji,jj)*e2u(ji,jj)*uemsk(jj,1) * MAX(obctmsk(ji,jj),obctmsk(ji+1,jj) ) 433 428 END DO 434 END IF435 436 IF( lp_obc_west ) THEN ! ... West open boundary lateral surface 437 DO ji = niw0, niw1438 DO jj = 1, jpj439 obcsurftot = obcsurftot+hu(ji,jj)*e2u(ji,jj)*uwmsk(jj,1) * MAX(obctmsk(ji,jj),obctmsk(ji+1,jj) )440 END DO429 END DO 430 END IF 431 432 IF( lp_obc_west ) THEN ! ... West open boundary lateral surface 433 DO ji = niw0, niw1 434 DO jj = 1, jpj 435 obcsurftot = obcsurftot+hu(ji,jj)*e2u(ji,jj)*uwmsk(jj,1) * MAX(obctmsk(ji,jj),obctmsk(ji+1,jj) ) 441 436 END DO 442 END IF 443 444 IF( lp_obc_north ) THEN ! ... North open boundary lateral surface 445 DO jj = njn0, njn1 446 DO ji = 1, jpi 447 obcsurftot = obcsurftot+hv(ji,jj)*e1v(ji,jj)*vnmsk(ji,1) * MAX(obctmsk(ji,jj),obctmsk(ji,jj+1) ) 448 END DO 437 END DO 438 END IF 439 IF( lp_obc_north ) THEN ! ... North open boundary lateral surface 440 DO jj = njn0, njn1 441 DO ji = 1, jpi 442 obcsurftot = obcsurftot+hv(ji,jj)*e1v(ji,jj)*vnmsk(ji,1) * MAX(obctmsk(ji,jj),obctmsk(ji,jj+1) ) 449 443 END DO 450 END IF451 452 IF( lp_obc_south ) THEN ! ... South open boundary lateral surface 453 DO jj = njs0, njs1454 DO ji = 1, jpi455 obcsurftot = obcsurftot+hv(ji,jj)*e1v(ji,jj)*vsmsk(ji,1) * MAX(obctmsk(ji,jj),obctmsk(ji,jj+1) )456 END DO444 END DO 445 END IF 446 447 IF( lp_obc_south ) THEN ! ... South open boundary lateral surface 448 DO jj = njs0, njs1 449 DO ji = 1, jpi 450 obcsurftot = obcsurftot+hv(ji,jj)*e1v(ji,jj)*vsmsk(ji,1) * MAX(obctmsk(ji,jj),obctmsk(ji,jj+1) ) 457 451 END DO 458 END IF459 460 IF( lk_mpp ) CALL mpp_sum( obcsurftot ) ! sum over the global domain 461 ENDIF452 END DO 453 END IF 454 455 IF( lk_mpp ) CALL mpp_sum( obcsurftot ) ! sum over the global domain 462 456 463 457 ! 5. Control print on mask -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/OBC/obcrad.F90
r1528 r2201 115 115 ! ------------------- 116 116 117 IF( kt > nit000 ) THEN117 IF( kt > nit000 .OR. ln_rstart ) THEN 118 118 119 119 ! ... advance in time (time filter, array swap) … … 379 379 ! ------------------- 380 380 381 IF( kt > nit000 ) THEN381 IF( kt > nit000 .OR. ln_rstart ) THEN 382 382 383 383 ! ... advance in time (time filter, array swap) … … 648 648 ! ------------------- 649 649 650 IF( kt > nit000 ) THEN650 IF( kt > nit000 .OR. ln_rstart ) THEN 651 651 652 652 ! ... advance in time (time filter, array swap) … … 922 922 ! -------------------- 923 923 924 IF( kt > nit000 ) THEN924 IF( kt > nit000 .OR. ln_rstart ) THEN 925 925 926 926 ! ... advance in time (time filter, array swap) -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/OBC/obcrst.F90
r1818 r2201 278 278 !! * Local declarations 279 279 INTEGER :: inum = 11 ! temporary logical unit 280 INTEGER :: ji,jj,jk ,ios280 INTEGER :: ji,jj,jk 281 281 INTEGER :: ino0,it0,nbobc0,jpieob0,jpiwob0,jpjnob0,jpjsob0 282 282 INTEGER :: ino1,it1,nbobc1,jpieob1,jpiwob1,jpjnob1,jpjsob1 -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/OBC/obctra.F90
r1152 r2201 490 490 zin = sign( 1., -1.* z05cx ) 491 491 zin = 0.5*( zin + abs(zin) ) 492 ztau = (1.-zin ) + zin * rtaus492 ztau = (1.-zin ) * rtausin + zin * rtaus 493 493 z05cx = z05cx * zin 494 494 495 !... update (ta,sa) with radiative or climatological (t, s) 495 496 ta(ji,jj,jk) = ta(ji,jj,jk) * (1.-tsmsk(ji,jk)) + & -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/SBC/cpl_oasis3.F90
r1698 r2201 27 27 USE mod_prism_proto ! OASIS3 prism module 28 28 USE mod_prism_def_partition_proto! OASIS3 prism module for partitioning 29 USE mod_prism_grids_writing ! OASIS3 prism module for writing grid files30 29 USE mod_prism_put_proto ! OASIS3 prism module for snding 31 30 USE mod_prism_get_proto ! OASIS3 prism module for receiving 32 USE mod_prism_grids_writing ! OASIS3 prism module for writing grids33 31 USE par_oce ! ocean parameters 34 32 USE dom_oce ! ocean space and time domain -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/SBC/fldread.F90
r1826 r2201 815 815 WRITE(aname,'(a3,i2.2)') 'src',jn 816 816 data_tmp(:,:) = 0 817 CALL iom_get ( inum, jpdom_unknown, aname, data_tmp(1:nlci,1:nlcj), & 818 kstart=(/nimpp,njmpp/), kcount=(/nlci,nlcj/) ) 817 CALL iom_get ( inum, jpdom_data, aname, data_tmp(:,:) ) 819 818 data_src(:,:) = INT(data_tmp(:,:)) 820 819 ref_wgts(nxt_wgt)%data_jpj(:,:,jn) = 1 + (data_src(:,:)-1) / ref_wgts(nxt_wgt)%ddims(1) … … 825 824 aname = ' ' 826 825 WRITE(aname,'(a3,i2.2)') 'wgt',jn 827 ref_wgts(nxt_wgt)%data_wgt(1:nlci,1:nlcj,jn) = 0.0 828 CALL iom_get ( inum, jpdom_unknown, aname, ref_wgts(nxt_wgt)%data_wgt(1:nlci,1:nlcj,jn), & 829 kstart=(/nimpp,njmpp/), kcount=(/nlci,nlcj/) ) 826 ref_wgts(nxt_wgt)%data_wgt(:,:,jn) = 0.0 827 CALL iom_get ( inum, jpdom_data, aname, ref_wgts(nxt_wgt)%data_wgt(:,:,jn) ) 830 828 END DO 831 829 CALL iom_close (inum) 832 830 833 831 ! find min and max indices in grid 834 ref_wgts(nxt_wgt)%botleft(1) = MINVAL(ref_wgts(nxt_wgt)%data_jpi( 1:nlci,1:nlcj,:))835 ref_wgts(nxt_wgt)%botleft(2) = MINVAL(ref_wgts(nxt_wgt)%data_jpj( 1:nlci,1:nlcj,:))836 ref_wgts(nxt_wgt)%topright(1) = MAXVAL(ref_wgts(nxt_wgt)%data_jpi( 1:nlci,1:nlcj,:))837 ref_wgts(nxt_wgt)%topright(2) = MAXVAL(ref_wgts(nxt_wgt)%data_jpj( 1:nlci,1:nlcj,:))832 ref_wgts(nxt_wgt)%botleft(1) = MINVAL(ref_wgts(nxt_wgt)%data_jpi(:,:,:)) 833 ref_wgts(nxt_wgt)%botleft(2) = MINVAL(ref_wgts(nxt_wgt)%data_jpj(:,:,:)) 834 ref_wgts(nxt_wgt)%topright(1) = MAXVAL(ref_wgts(nxt_wgt)%data_jpi(:,:,:)) 835 ref_wgts(nxt_wgt)%topright(2) = MAXVAL(ref_wgts(nxt_wgt)%data_jpj(:,:,:)) 838 836 839 837 ! and therefore dimensions of the input box -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/SBC/sbcana.F90
r1732 r2201 88 88 ! 89 89 nn_tau000 = MAX( nn_tau000, 1 ) ! must be >= 1 90 qns (:,:) = rn_qns091 qsr (:,:) = rn_qsr092 emp (:,:) = rn_emp093 emps (:,:) = rn_emp094 90 ! 95 91 ENDIF 92 93 qns (:,:) = rn_qns0 94 qsr (:,:) = rn_qsr0 95 emp (:,:) = rn_emp0 96 emps (:,:) = rn_emp0 96 97 97 98 ! Increase the surface stress to its nominal value during the first nn_tau000 time-steps -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/SBC/sbccpl.F90
r1860 r2201 40 40 USE restart ! 41 41 USE oce , ONLY : tn, un, vn 42 USE phycst, ONLY : rt0, rcp43 42 USE albedo ! 44 43 USE in_out_manager ! I/O manager … … 153 152 INTEGER , DIMENSION( jprcv) :: nrcvinfo ! OASIS info argument 154 153 154 #if ! defined key_lim2 && ! defined key_lim3 155 ! quick patch to be able to run the coupled model without sea-ice... 156 INTEGER, PARAMETER :: jpl = 1 157 REAL(wp), DIMENSION(jpi,jpj ) :: hicif, hsnif, u_ice, v_ice,fr1_i0,fr2_i0 158 REAL(wp), DIMENSION(jpi,jpj,jpl) :: tn_ice, alb_ice 159 REAL(wp) :: lfus 160 #endif 161 155 162 !! Substitution 156 163 # include "vectopt_loop_substitute.h90" … … 254 261 255 262 ! default definitions of srcv 256 srcv(:)%laction = .FALSE. ; srcv(:)%clgrid = 'T' ; srcv(:)%nsgn = 1 263 srcv(:)%laction = .FALSE. ; srcv(:)%clgrid = 'T' ; srcv(:)%nsgn = 1. 257 264 258 265 ! ! ------------------------- ! … … 439 446 440 447 ! default definitions of nsnd 441 ssnd(:)%laction = .FALSE. ; ssnd(:)%clgrid = 'T' ; ssnd(:)%nsgn = 1 448 ssnd(:)%laction = .FALSE. ; ssnd(:)%clgrid = 'T' ; ssnd(:)%nsgn = 1. 442 449 443 450 ! ! ------------------------- ! … … 492 499 ssnd(jps_ocz1)%clname = 'O_OCurz1' ; ssnd(jps_ivz1)%clname = 'O_IVelz1' 493 500 ! 494 ssnd(jps_ocx1:jps_ivz1)%nsgn = -1 501 ssnd(jps_ocx1:jps_ivz1)%nsgn = -1. ! vectors: change of the sign at the north fold 495 502 496 503 IF( cn_snd_crt(4) /= 'T' ) CALL ctl_stop( 'cn_snd_crt(4) must be equal to T' ) … … 714 721 ! ! non solar heat flux over the ocean (qns) 715 722 IF( srcv(jpr_qnsoce)%laction ) qns(:,:) = frcv(:,:,jpr_qnsoce) 716 IF( srcv(jpr_qnsmix)%laction ) qns(:,:) = frcv(:,:,jpr_qnsmix) 717 qns(:,:) = qns(:,:) - frcv(:,:,jpr_snow) * lfus ! add the latent heat of solid precip. melting 723 IF( srcv(jpr_qnsmix)%laction ) qns(:,:) = frcv(:,:,jpr_qnsmix) 724 ! add the latent heat of solid precip. melting 725 IF( srcv(jpr_snow )%laction ) qns(:,:) = qns(:,:) - frcv(:,:,jpr_snow) * lfus 718 726 719 727 ! ! solar flux over the ocean (qsr) -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/SBC/sbcice_lim_2.F90
r1715 r2201 180 180 ENDIF 181 181 #if defined key_coupled 182 IF( ksbc == 5 ) CALL sbc_cpl_ice_flx( frld ,&182 IF( ksbc == 5 ) CALL sbc_cpl_ice_flx( reshape( frld, (/jpi,jpj,1/) ), & 183 183 & qns_tot, qns_ice, qsr_tot , qsr_ice, & 184 184 & emp_tot, emp_ice, dqns_ice, sprecip, & -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/SOL/solmat.F90
r1876 r2201 80 80 ENDIF 81 81 82 #if defined key_dynspg_flt && ! defined key_obc 82 #if defined key_dynspg_flt 83 # if ! defined key_obc 83 84 84 85 DO jj = 2, jpjm1 ! matrix of free surface elliptic system … … 97 98 END DO 98 99 END DO 99 100 # elif defined key_dynspg_flt && defined key_obc 101 IF( Agrif_Root() ) THEN 102 DO jj = 2, jpjm1 ! matrix of free surface elliptic system with open boundaries 103 DO ji = 2, jpim1 104 zcoef = z2dt * z2dt * grav * bmask(ji,jj) 105 ! ! south coefficient 106 IF( lp_obc_south .AND. ( jj == njs0p1 ) ) THEN 107 zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1)*(1.-vsmsk(ji,1)) 108 ELSE 109 zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1) 110 END IF 111 gcp(ji,jj,1) = zcoefs 112 ! 113 ! ! west coefficient 114 IF( lp_obc_west .AND. ( ji == niw0p1 ) ) THEN 115 zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj)*(1.-uwmsk(jj,1)) 116 ELSE 117 zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj) 118 END IF 119 gcp(ji,jj,2) = zcoefw 120 ! 121 ! ! east coefficient 122 IF( lp_obc_east .AND. ( ji == nie0 ) ) THEN 123 zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj)*(1.-uemsk(jj,1)) 124 ELSE 125 zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj) 126 END IF 127 gcp(ji,jj,3) = zcoefe 128 ! 129 ! ! north coefficient 130 IF( lp_obc_north .AND. ( jj == njn0 ) ) THEN 131 zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj)*(1.-vnmsk(ji,1)) 132 ELSE 100 # else 101 IF ( Agrif_Root() ) THEN 102 DO jj = 2, jpjm1 ! matrix of free surface elliptic system with open boundaries 103 DO ji = 2, jpim1 104 zcoef = z2dt * z2dt * grav * bmask(ji,jj) 105 ! ! south coefficient 106 IF( lp_obc_south .AND. ( jj == njs0p1 ) ) THEN 107 zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1)*(1.-vsmsk(ji,1)) 108 ELSE 109 zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1) 110 END IF 111 gcp(ji,jj,1) = zcoefs 112 ! 113 ! ! west coefficient 114 IF( lp_obc_west .AND. ( ji == niw0p1 ) ) THEN 115 zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj)*(1.-uwmsk(jj,1)) 116 ELSE 117 zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj) 118 END IF 119 gcp(ji,jj,2) = zcoefw 120 ! 121 ! ! east coefficient 122 IF( lp_obc_east .AND. ( ji == nie0 ) ) THEN 123 zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj)*(1.-uemsk(jj,1)) 124 ELSE 125 zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj) 126 END IF 127 gcp(ji,jj,3) = zcoefe 128 ! 129 ! ! north coefficient 130 IF( lp_obc_north .AND. ( jj == njn0 ) ) THEN 131 zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj)*(1.-vnmsk(ji,1)) 132 ELSE 133 133 zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj) 134 END IF 135 gcp(ji,jj,4) = zcoefn 136 ! 137 ! ! diagonal coefficient 138 gcdmat(ji,jj) = e1t(ji,jj)*e2t(ji,jj)*bmask(ji,jj) & 139 & - zcoefs -zcoefw -zcoefe -zcoefn 140 END DO 141 END DO 142 ENDIF 134 END IF 135 gcp(ji,jj,4) = zcoefn 136 ! 137 ! ! diagonal coefficient 138 gcdmat(ji,jj) = e1t(ji,jj)*e2t(ji,jj)*bmask(ji,jj) & 139 & - zcoefs -zcoefw -zcoefe -zcoefn 140 END DO 141 END DO 142 ELSE 143 DO jj = 2, jpjm1 ! matrix of free surface elliptic system 144 DO ji = 2, jpim1 145 zcoef = z2dt * z2dt * grav * bmask(ji,jj) 146 zcoefs = -zcoef * hv(ji ,jj-1) * e1v(ji ,jj-1) / e2v(ji ,jj-1) ! south coefficient 147 zcoefw = -zcoef * hu(ji-1,jj ) * e2u(ji-1,jj ) / e1u(ji-1,jj ) ! west coefficient 148 zcoefe = -zcoef * hu(ji ,jj ) * e2u(ji ,jj ) / e1u(ji ,jj ) ! east coefficient 149 zcoefn = -zcoef * hv(ji ,jj ) * e1v(ji ,jj ) / e2v(ji ,jj ) ! north coefficient 150 gcp(ji,jj,1) = zcoefs 151 gcp(ji,jj,2) = zcoefw 152 gcp(ji,jj,3) = zcoefe 153 gcp(ji,jj,4) = zcoefn 154 gcdmat(ji,jj) = e1t(ji,jj) * e2t(ji,jj) * bmask(ji,jj) & ! diagonal coefficient 155 & - zcoefs -zcoefw -zcoefe -zcoefn 156 END DO 157 END DO 158 ENDIF 159 # endif 143 160 #endif 144 161 145 #if defined key_agrif 146 IF( .NOT.AGRIF_ROOT() ) THEN 162 IF( .NOT. Agrif_Root() ) THEN 147 163 ! 148 164 IF( nbondi == -1 .OR. nbondi == 2 ) bmask(2 ,: ) = 0.e0 … … 193 209 ! 194 210 ENDIF 195 #endif196 211 197 212 ! 2. Boundary conditions -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/TRA/traqsr.F90
r1756 r2201 45 45 46 46 ! Module variables 47 !$AGRIF_DO_NOT_TREAT 47 48 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_chl ! structure of input Chl (file informations, fields read) 48 49 INTEGER :: nksr ! levels below which the light cannot penetrate ( depth larger than 391 m) 49 50 REAL(wp), DIMENSION(3,61) :: rkrgb !: tabulated attenuation coefficients for RGB absorption 51 !$AGRIF_END_DO_NOT_TREAT 50 52 51 53 !! * Substitutions -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/opa.F90
r1793 r2201 192 192 ! !--------------------------------------------! 193 193 #if defined key_iomput 194 IF( Agrif_Root() ) THEN 194 195 # if defined key_oasis3 || defined key_oasis4 195 IF( Agrif_Root() ) THEN196 196 CALL cpl_prism_init( ilocal_comm ) ! nemo local communicator given by oasis 197 CALL init_ioclient() ! io_server will get its communicators (if needed) from oasis (we don't see it)198 ENDIF199 # else200 IF( Agrif_Root() ) THEN201 CALL init_ioclient( ilocal_comm ) ! nemo local communicator (used or not) given by the io_server202 ENDIF203 197 # endif 198 CALL init_ioclient( ilocal_comm ) ! exchange io_server nemo local communicator with the io_server 199 ENDIF 204 200 narea = mynode( cltxt, ilocal_comm ) ! Nodes selection 205 206 201 #else 207 202 # if defined key_oasis3 || defined key_oasis4 -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/step.F90
r2177 r2201 178 178 CALL iom_setkt( kstp ) ! say to iom that we are at time step kstp 179 179 180 CALL rst_opn( kstp ) ! Open the restart file181 182 180 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 183 181 ! Update data, open boundaries, surface boundary condition (including sea-ice) -
branches/DEV_r1924_nocs_latphys/NEMO/TOP_SRC/C14b/par_c14b.F90
r1252 r2201 27 27 28 28 IMPLICIT NONE 29 PUBLIC30 29 31 INTEGER, P UBLIC, PARAMETER :: jp_lp= jp_lobster + jp_pisces + jp_cfc !: cum. number of pass. tracers32 INTEGER, P UBLIC, PARAMETER :: jp_lp_2d = jp_lobster_2d + jp_pisces_2d + jp_cfc_2d !:33 INTEGER, P UBLIC, PARAMETER :: jp_lp_3d = jp_lobster_3d + jp_pisces_3d + jp_cfc_3d !:34 INTEGER, P UBLIC, PARAMETER :: jp_lp_trd = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd !:30 INTEGER, PARAMETER :: jp_lb = jp_lobster + jp_pisces + jp_cfc !: cum. number of pass. tracers 31 INTEGER, PARAMETER :: jp_lb_2d = jp_lobster_2d + jp_pisces_2d + jp_cfc_2d !: 32 INTEGER, PARAMETER :: jp_lb_3d = jp_lobster_3d + jp_pisces_3d + jp_cfc_3d !: 33 INTEGER, PARAMETER :: jp_lb_trd = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd !: 35 34 36 35 #if defined key_c14b … … 43 42 INTEGER, PUBLIC, PARAMETER :: jp_c14b_3d = 1 !: additional 3d output arrays ('key_trc_diaadd') 44 43 INTEGER, PUBLIC, PARAMETER :: jp_c14b_trd = 0 !: number of sms trends for C14 45 46 ! assign an index in trc arrays for each CFC prognostic variables 47 INTEGER, PUBLIC, PARAMETER :: jpc14 = jp_lp + 1 !: C14 bomb 44 INTEGER, PUBLIC, PARAMETER :: jpc14 = jp_lb + 1 !: assign an index in trc arrays for C14 bomb 48 45 #else 49 46 !!--------------------------------------------------------------------- … … 58 55 59 56 ! Starting/ending C14 do-loop indices (N.B. no C14 : jp_c14b0 > jp_c14b1 the do-loop are never done) 60 INTEGER, PUBLIC, PARAMETER :: jp_c14b0 = jp_l p+ 1 !: First index of C14 tracer61 INTEGER, PUBLIC, PARAMETER :: jp_c14b1 = jp_l p+ jp_c14b !: Last index of C14 tracer62 INTEGER, PUBLIC, PARAMETER :: jp_c14b0_2d = jp_l p_2d + 1 !: First index of C14 tracer63 INTEGER, PUBLIC, PARAMETER :: jp_c14b1_2d = jp_l p_2d + jp_c14b_2d !: Last index of C14 tracer64 INTEGER, PUBLIC, PARAMETER :: jp_c14b0_3d = jp_l p_3d + 1 !: First index of C14 tracer65 INTEGER, PUBLIC, PARAMETER :: jp_c14b1_3d = jp_l p_3d + jp_c14b_3d !: Last index of C14 tracer66 INTEGER, PUBLIC, PARAMETER :: jp_c14b0_trd = jp_l p_trd + 1 !: First index of C14 tracer67 INTEGER, PUBLIC, PARAMETER :: jp_c14b1_trd = jp_l p_trd + jp_c14b_trd !: Last index of C14 tracer57 INTEGER, PUBLIC, PARAMETER :: jp_c14b0 = jp_lb + 1 !: First index of C14 tracer 58 INTEGER, PUBLIC, PARAMETER :: jp_c14b1 = jp_lb + jp_c14b !: Last index of C14 tracer 59 INTEGER, PUBLIC, PARAMETER :: jp_c14b0_2d = jp_lb_2d + 1 !: First index of C14 tracer 60 INTEGER, PUBLIC, PARAMETER :: jp_c14b1_2d = jp_lb_2d + jp_c14b_2d !: Last index of C14 tracer 61 INTEGER, PUBLIC, PARAMETER :: jp_c14b0_3d = jp_lb_3d + 1 !: First index of C14 tracer 62 INTEGER, PUBLIC, PARAMETER :: jp_c14b1_3d = jp_lb_3d + jp_c14b_3d !: Last index of C14 tracer 63 INTEGER, PUBLIC, PARAMETER :: jp_c14b0_trd = jp_lb_trd + 1 !: First index of C14 tracer 64 INTEGER, PUBLIC, PARAMETER :: jp_c14b1_trd = jp_lb_trd + jp_c14b_trd !: Last index of C14 tracer 68 65 69 66 !!====================================================================== -
branches/DEV_r1924_nocs_latphys/NEMO/TOP_SRC/CFC/par_cfc.F90
r1253 r2201 21 21 22 22 IMPLICIT NONE 23 PUBLIC24 23 25 INTEGER, P UBLIC, PARAMETER :: jp_lp= jp_lobster + jp_pisces !: cumulative number of passive tracers26 INTEGER, P UBLIC, PARAMETER :: jp_lp_2d = jp_lobster_2d + jp_pisces_2d !:27 INTEGER, P UBLIC, PARAMETER :: jp_lp_3d = jp_lobster_3d + jp_pisces_3d !:28 INTEGER, P UBLIC, PARAMETER :: jp_lp_trd = jp_lobster_trd + jp_pisces_trd !:24 INTEGER, PARAMETER :: jp_lc = jp_lobster + jp_pisces !: cumulative number of passive tracers 25 INTEGER, PARAMETER :: jp_lc_2d = jp_lobster_2d + jp_pisces_2d !: 26 INTEGER, PARAMETER :: jp_lc_3d = jp_lobster_3d + jp_pisces_3d !: 27 INTEGER, PARAMETER :: jp_lc_trd = jp_lobster_trd + jp_pisces_trd !: 29 28 30 29 #if defined key_cfc … … 39 38 40 39 ! assign an index in trc arrays for each CFC prognostic variables 41 INTEGER, PUBLIC, PARAMETER :: jpc11 = jp_l p+ 1 !: CFC-1142 INTEGER, PUBLIC, PARAMETER :: jpc12 = jp_l p+ 2 !: CFC-1240 INTEGER, PUBLIC, PARAMETER :: jpc11 = jp_lc + 1 !: CFC-11 41 INTEGER, PUBLIC, PARAMETER :: jpc12 = jp_lc + 2 !: CFC-12 43 42 #else 44 43 !!--------------------------------------------------------------------- … … 53 52 54 53 ! Starting/ending CFC do-loop indices (N.B. no CFC : jp_cfc0 > jp_cfc1 the do-loop are never done) 55 INTEGER, PUBLIC, PARAMETER :: jp_cfc0 = jp_l p+ 1 !: First index of CFC tracers56 INTEGER, PUBLIC, PARAMETER :: jp_cfc1 = jp_l p+ jp_cfc !: Last index of CFC tracers57 INTEGER, PUBLIC, PARAMETER :: jp_cfc0_2d = jp_l p_2d + 1 !: First index of CFC tracers58 INTEGER, PUBLIC, PARAMETER :: jp_cfc1_2d = jp_l p_2d + jp_cfc_2d !: Last index of CFC tracers59 INTEGER, PUBLIC, PARAMETER :: jp_cfc0_3d = jp_l p_3d + 1 !: First index of CFC tracers60 INTEGER, PUBLIC, PARAMETER :: jp_cfc1_3d = jp_l p_3d + jp_cfc_3d !: Last index of CFC tracers61 INTEGER, PUBLIC, PARAMETER :: jp_cfc0_trd = jp_l p_trd + 1 !: First index of CFC tracers62 INTEGER, PUBLIC, PARAMETER :: jp_cfc1_trd = jp_l p_trd + jp_cfc_trd !: Last index of CFC tracers54 INTEGER, PUBLIC, PARAMETER :: jp_cfc0 = jp_lc + 1 !: First index of CFC tracers 55 INTEGER, PUBLIC, PARAMETER :: jp_cfc1 = jp_lc + jp_cfc !: Last index of CFC tracers 56 INTEGER, PUBLIC, PARAMETER :: jp_cfc0_2d = jp_lc_2d + 1 !: First index of CFC tracers 57 INTEGER, PUBLIC, PARAMETER :: jp_cfc1_2d = jp_lc_2d + jp_cfc_2d !: Last index of CFC tracers 58 INTEGER, PUBLIC, PARAMETER :: jp_cfc0_3d = jp_lc_3d + 1 !: First index of CFC tracers 59 INTEGER, PUBLIC, PARAMETER :: jp_cfc1_3d = jp_lc_3d + jp_cfc_3d !: Last index of CFC tracers 60 INTEGER, PUBLIC, PARAMETER :: jp_cfc0_trd = jp_lc_trd + 1 !: First index of CFC tracers 61 INTEGER, PUBLIC, PARAMETER :: jp_cfc1_trd = jp_lc_trd + jp_cfc_trd !: Last index of CFC tracers 63 62 64 63 !!====================================================================== -
branches/DEV_r1924_nocs_latphys/NEMO/TOP_SRC/CFC/trcctl_cfc.F90
r1801 r2201 53 53 ! Check tracer names 54 54 ! ------------------ 55 IF ( ctrcnm(jpc11) /= 'CFC11' .OR. ctrcnm(jpc12) /= 'CFC12' ) THEN 56 ctrcnm(jpc11) = 'CFC11' 57 ctrcnl(jpc11) = 'Chlorofuorocarbone 11 concentration' 58 ctrcnm(jpc12) = 'CFC12' 59 ctrcnl(jpc12) = 'Chlorofuorocarbone 12 concentration' 55 ctrcnm(jpc11) = 'CFC11' 56 ctrcnl(jpc11) = 'Chlorofuorocarbone 11 concentration' 57 58 IF ( jp_cfc == 2 ) THEN 59 ctrcnm(jpc12) = 'CFC12' 60 ctrcnl(jpc12) = 'Chlorofuorocarbone 12 concentration' 60 61 ENDIF 61 62 62 63 IF(lwp) THEN 63 WRITE (numout,*) ' ===>>>> : w a r n i n g <<<<===' 64 WRITE (numout,*) ' ===>>>> : w a r n i n g ' 65 WRITE (numout,*) ' ======= ============= ' 64 66 WRITE (numout,*) ' we force tracer names' 65 67 DO jl = 1, jp_cfc … … 68 70 END DO 69 71 WRITE(numout,*) ' ' 70 ENDIF 72 ENDIF 71 73 72 74 -
branches/DEV_r1924_nocs_latphys/NEMO/TOP_SRC/CFC/trcini_cfc.F90
r1581 r2201 22 22 23 23 PUBLIC trc_ini_cfc ! called by trcini.F90 module 24 25 CHARACTER (len=34) :: clname = 'cfc1112.atm' ! ??? 24 26 25 27 INTEGER :: inum ! unit number … … 55 57 ! --------------------------------------- 56 58 xphem (:,:) = 0.e0 57 DO jl = 1, jp_cfc 58 jn = jp_cfc0 + jl - 1 59 DO jm = 1, jphem 60 DO js = 1, jpyear 61 p_cfc(js,jm,jn) = 0.0 62 END DO 63 END DO 64 END DO 65 59 p_cfc(:,:,:) = 0.e0 66 60 67 61 ! Initialization of qint in case of no restart … … 73 67 WRITE(numout,*) 'Initialization de qint ; No restart : qint equal zero ' 74 68 ENDIF 69 qint_cfc(:,:,:) = 0.e0 75 70 DO jl = 1, jp_cfc 76 71 jn = jp_cfc0 + jl - 1 77 72 trn (:,:,:,jn) = 0.e0 78 qint_cfc(:,: ,jn) = 0.e079 73 END DO 80 74 ENDIF … … 88 82 IF(lwp) WRITE(numout,*) 'read of formatted file cfc1112atm' 89 83 90 CALL ctl_opn( inum, 'cfc1112.atm', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )84 CALL ctl_opn( inum, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 91 85 REWIND(inum) 92 86 … … 95 89 END DO 96 90 97 DO jn = 31, 98 ! Read file 98 READ(inum,*) zyy, p_cfc(jn,1,1), p_cfc(jn,1,2), p_cfc(jn,2,1), p_cfc(jn,2,2) 99 WRITE(numout,'(f7.2, 4f8.2)' ) & 91 ! file starts in 1931 do jn represent the year in the century.jhh 92 ! Read file till the end 93 jn = 31 94 DO WHILE ( 1 /= 2 ) 95 READ(inum,*,END=100) zyy, p_cfc(jn,1,1), p_cfc(jn,1,2), p_cfc(jn,2,1), p_cfc(jn,2,2) 96 IF ( lwp) THEN 97 WRITE(numout,'(f7.2, 4f8.2)' ) & 100 98 & zyy, p_cfc(jn,1,1), p_cfc(jn,1,2), p_cfc(jn,2,1), p_cfc(jn,2,2) 99 ENDIF 100 jn = jn + 1 101 101 END DO 102 100 npyear = jn - 1 103 IF ( lwp) WRITE(numout,*) ' ', npyear ,' years read' 102 104 103 105 p_cfc(32,1:2,1) = 5.e-4 ! modify the values of the first years -
branches/DEV_r1924_nocs_latphys/NEMO/TOP_SRC/CFC/trcsms_cfc.F90
r1459 r2201 27 27 PUBLIC trc_sms_cfc ! called in ??? 28 28 29 INTEGER , PUBLIC, PARAMETER :: jpyear = 1 00 ! temporal parameter29 INTEGER , PUBLIC, PARAMETER :: jpyear = 150 ! temporal parameter 30 30 INTEGER , PUBLIC, PARAMETER :: jphem = 2 ! parameter for the 2 hemispheres 31 31 INTEGER , PUBLIC :: ndate_beg ! initial calendar date (aammjj) for CFC 32 32 INTEGER , PUBLIC :: nyear_res ! restoring time constant (year) 33 33 INTEGER , PUBLIC :: nyear_beg ! initial year (aa) 34 INTEGER , PUBLIC :: npyear ! Number of years read in CFC1112 file 34 35 35 36 REAL(wp), PUBLIC, DIMENSION(jpyear,jphem, jp_cfc) :: p_cfc ! partial hemispheric pressure for CFC … … 96 97 ! Temporal interpolation 97 98 ! ---------------------- 98 iyear_beg = nyear + ( nyear_res - 1900 - nyear_beg )99 iyear_beg = nyear - 1900 99 100 IF ( nmonth <= 6 ) THEN 100 iyear_beg = iyear_beg - 2 + nyear_beg101 iyear_beg = iyear_beg - 1 101 102 im1 = 6 - nmonth + 1 102 103 im2 = 6 + nmonth - 1 103 104 ELSE 104 iyear_beg = iyear_beg - 1 + nyear_beg105 105 im1 = 12 - nmonth + 7 106 106 im2 = nmonth - 7 -
branches/DEV_r1924_nocs_latphys/NEMO/TOP_SRC/LOBSTER/par_lobster.F90
r1176 r2201 12 12 13 13 IMPLICIT NONE 14 PUBLIC15 14 16 15 #if defined key_lobster -
branches/DEV_r1924_nocs_latphys/NEMO/TOP_SRC/MY_TRC/par_my_trc.F90
r1253 r2201 31 31 32 32 IMPLICIT NONE 33 PUBLIC34 33 35 INTEGER, P UBLIC, PARAMETER :: jp_lpc= jp_lobster + jp_pisces + jp_cfc + jp_c14b !:36 INTEGER, P UBLIC, PARAMETER :: jp_lpc_2d = jp_lobster_2d + jp_pisces_2d + jp_cfc_2d + jp_c14b_2d !:37 INTEGER, P UBLIC, PARAMETER :: jp_lpc_3d = jp_lobster_3d + jp_pisces_3d + jp_cfc_3d + jp_c14b_3d !:38 INTEGER, P UBLIC, PARAMETER :: jp_lpc_trd = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_c14b_trd !:34 INTEGER, PARAMETER :: jp_lm = jp_lobster + jp_pisces + jp_cfc + jp_c14b !: 35 INTEGER, PARAMETER :: jp_lm_2d = jp_lobster_2d + jp_pisces_2d + jp_cfc_2d + jp_c14b_2d !: 36 INTEGER, PARAMETER :: jp_lm_3d = jp_lobster_3d + jp_pisces_3d + jp_cfc_3d + jp_c14b_3d !: 37 INTEGER, PARAMETER :: jp_lm_trd = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_c14b_trd !: 39 38 40 39 #if defined key_my_trc … … 49 48 50 49 ! assign an index in trc arrays for each PTS prognostic variables 51 INTEGER, PUBLIC, PARAMETER :: jpmyt1 = jp_l pc+ 1 !: 1st MY_TRC tracer52 INTEGER, PUBLIC, PARAMETER :: jpmyt2 = jp_l pc+ 2 !: 2nd MY_TRC tracer50 INTEGER, PUBLIC, PARAMETER :: jpmyt1 = jp_lm + 1 !: 1st MY_TRC tracer 51 INTEGER, PUBLIC, PARAMETER :: jpmyt2 = jp_lm + 2 !: 2nd MY_TRC tracer 53 52 54 53 #else … … 64 63 65 64 ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done) 66 INTEGER, PUBLIC, PARAMETER :: jp_myt0 = jp_l pc+ 1 !: First index of MY_TRC passive tracers67 INTEGER, PUBLIC, PARAMETER :: jp_myt1 = jp_l pc+ jp_my_trc !: Last index of MY_TRC passive tracers68 INTEGER, PUBLIC, PARAMETER :: jp_myt0_2d = jp_l pc_2d + 1 !: First index of MY_TRC passive tracers69 INTEGER, PUBLIC, PARAMETER :: jp_myt1_2d = jp_l pc_2d + jp_my_trc_2d !: Last index of MY_TRC passive tracers70 INTEGER, PUBLIC, PARAMETER :: jp_myt0_3d = jp_l pc_3d + 1 !: First index of MY_TRC passive tracers71 INTEGER, PUBLIC, PARAMETER :: jp_myt1_3d = jp_l pc_3d + jp_my_trc_3d !: Last index of MY_TRC passive tracers72 INTEGER, PUBLIC, PARAMETER :: jp_myt0_trd = jp_l pc_trd + 1 !: First index of MY_TRC passive tracers73 INTEGER, PUBLIC, PARAMETER :: jp_myt1_trd = jp_l pc_trd + jp_my_trc_trd !: Last index of MY_TRC passive tracers65 INTEGER, PUBLIC, PARAMETER :: jp_myt0 = jp_lm + 1 !: First index of MY_TRC passive tracers 66 INTEGER, PUBLIC, PARAMETER :: jp_myt1 = jp_lm + jp_my_trc !: Last index of MY_TRC passive tracers 67 INTEGER, PUBLIC, PARAMETER :: jp_myt0_2d = jp_lm_2d + 1 !: First index of MY_TRC passive tracers 68 INTEGER, PUBLIC, PARAMETER :: jp_myt1_2d = jp_lm_2d + jp_my_trc_2d !: Last index of MY_TRC passive tracers 69 INTEGER, PUBLIC, PARAMETER :: jp_myt0_3d = jp_lm_3d + 1 !: First index of MY_TRC passive tracers 70 INTEGER, PUBLIC, PARAMETER :: jp_myt1_3d = jp_lm_3d + jp_my_trc_3d !: Last index of MY_TRC passive tracers 71 INTEGER, PUBLIC, PARAMETER :: jp_myt0_trd = jp_lm_trd + 1 !: First index of MY_TRC passive tracers 72 INTEGER, PUBLIC, PARAMETER :: jp_myt1_trd = jp_lm_trd + jp_my_trc_trd !: Last index of MY_TRC passive tracers 74 73 75 74 !!====================================================================== -
branches/DEV_r1924_nocs_latphys/NEMO/TOP_SRC/MY_TRC/trcctl_my_trc.F90
r1264 r2201 40 40 IF(lwp) WRITE(numout,*) ' use COLOR tracer ' 41 41 42 DO j n= 1, jp_my_trc42 DO jl = 1, jp_my_trc 43 43 jn = jp_myt0 + jl - 1 44 44 WRITE(ctrcnm(jn),'(a,i2.2)') 'CLR',jn -
branches/DEV_r1924_nocs_latphys/NEMO/TOP_SRC/PISCES/par_pisces.F90
r1152 r2201 16 16 17 17 IMPLICIT NONE 18 PUBLIC19 18 20 INTEGER, P UBLIC, PARAMETER :: jp_l= jp_lobster !: cumulative number of already defined TRC21 INTEGER, P UBLIC, PARAMETER :: jp_l_2d = jp_lobster_2d !:22 INTEGER, P UBLIC, PARAMETER :: jp_l_3d = jp_lobster_3d !:23 INTEGER, P UBLIC, PARAMETER :: jp_l_trd = jp_lobster_trd !:19 INTEGER, PARAMETER :: jp_lp = jp_lobster !: cumulative number of already defined TRC 20 INTEGER, PARAMETER :: jp_lp_2d = jp_lobster_2d !: 21 INTEGER, PARAMETER :: jp_lp_3d = jp_lobster_3d !: 22 INTEGER, PARAMETER :: jp_lp_trd = jp_lobster_trd !: 24 23 25 24 #if defined key_pisces && defined key_kriest … … 37 36 ! WARNING: be carefull about the order when reading the restart 38 37 ! !!gm this warning should be obsolet with IOM 39 INTEGER, PUBLIC, PARAMETER :: jpdic = jp_l + 1 !: dissolved inoganic carbon concentration40 INTEGER, PUBLIC, PARAMETER :: jptal = jp_l + 2 !: total alkalinity41 INTEGER, PUBLIC, PARAMETER :: jpoxy = jp_l + 3 !: oxygen carbon concentration42 INTEGER, PUBLIC, PARAMETER :: jpcal = jp_l + 4 !: calcite concentration43 INTEGER, PUBLIC, PARAMETER :: jppo4 = jp_l + 5 !: phosphate concentration44 INTEGER, PUBLIC, PARAMETER :: jppoc = jp_l + 6 !: small particulate organic phosphate concentration45 INTEGER, PUBLIC, PARAMETER :: jpsil = jp_l + 7 !: silicate concentration46 INTEGER, PUBLIC, PARAMETER :: jpphy = jp_l + 8 !: phytoplancton concentration47 INTEGER, PUBLIC, PARAMETER :: jpzoo = jp_l + 9 !: zooplancton concentration48 INTEGER, PUBLIC, PARAMETER :: jpdoc = jp_l + 10 !: dissolved organic carbon concentration49 INTEGER, PUBLIC, PARAMETER :: jpdia = jp_l + 11 !: Diatoms Concentration50 INTEGER, PUBLIC, PARAMETER :: jpmes = jp_l + 12 !: Mesozooplankton Concentration51 INTEGER, PUBLIC, PARAMETER :: jpbsi = jp_l + 13 !: (big) Silicate Concentration52 INTEGER, PUBLIC, PARAMETER :: jpfer = jp_l + 14 !: Iron Concentration53 INTEGER, PUBLIC, PARAMETER :: jpnum = jp_l + 15 !: Big iron particles Concentration54 INTEGER, PUBLIC, PARAMETER :: jpsfe = jp_l + 16 !: number of particulate organic phosphate concentration55 INTEGER, PUBLIC, PARAMETER :: jpdfe = jp_l + 17 !: Diatoms iron Concentration56 INTEGER, PUBLIC, PARAMETER :: jpdsi = jp_l + 18 !: Diatoms Silicate Concentration57 INTEGER, PUBLIC, PARAMETER :: jpnfe = jp_l + 19 !: Nano iron Concentration58 INTEGER, PUBLIC, PARAMETER :: jpnch = jp_l + 20 !: Nano Chlorophyll Concentration59 INTEGER, PUBLIC, PARAMETER :: jpdch = jp_l + 21 !: Diatoms Chlorophyll Concentration60 INTEGER, PUBLIC, PARAMETER :: jpno3 = jp_l + 22 !: Nitrates Concentration61 INTEGER, PUBLIC, PARAMETER :: jpnh4 = jp_l + 23 !: Ammonium Concentration38 INTEGER, PUBLIC, PARAMETER :: jpdic = jp_lp + 1 !: dissolved inoganic carbon concentration 39 INTEGER, PUBLIC, PARAMETER :: jptal = jp_lp + 2 !: total alkalinity 40 INTEGER, PUBLIC, PARAMETER :: jpoxy = jp_lp + 3 !: oxygen carbon concentration 41 INTEGER, PUBLIC, PARAMETER :: jpcal = jp_lp + 4 !: calcite concentration 42 INTEGER, PUBLIC, PARAMETER :: jppo4 = jp_lp + 5 !: phosphate concentration 43 INTEGER, PUBLIC, PARAMETER :: jppoc = jp_lp + 6 !: small particulate organic phosphate concentration 44 INTEGER, PUBLIC, PARAMETER :: jpsil = jp_lp + 7 !: silicate concentration 45 INTEGER, PUBLIC, PARAMETER :: jpphy = jp_lp + 8 !: phytoplancton concentration 46 INTEGER, PUBLIC, PARAMETER :: jpzoo = jp_lp + 9 !: zooplancton concentration 47 INTEGER, PUBLIC, PARAMETER :: jpdoc = jp_lp + 10 !: dissolved organic carbon concentration 48 INTEGER, PUBLIC, PARAMETER :: jpdia = jp_lp + 11 !: Diatoms Concentration 49 INTEGER, PUBLIC, PARAMETER :: jpmes = jp_lp + 12 !: Mesozooplankton Concentration 50 INTEGER, PUBLIC, PARAMETER :: jpbsi = jp_lp + 13 !: (big) Silicate Concentration 51 INTEGER, PUBLIC, PARAMETER :: jpfer = jp_lp + 14 !: Iron Concentration 52 INTEGER, PUBLIC, PARAMETER :: jpnum = jp_lp + 15 !: Big iron particles Concentration 53 INTEGER, PUBLIC, PARAMETER :: jpsfe = jp_lp + 16 !: number of particulate organic phosphate concentration 54 INTEGER, PUBLIC, PARAMETER :: jpdfe = jp_lp + 17 !: Diatoms iron Concentration 55 INTEGER, PUBLIC, PARAMETER :: jpdsi = jp_lp + 18 !: Diatoms Silicate Concentration 56 INTEGER, PUBLIC, PARAMETER :: jpnfe = jp_lp + 19 !: Nano iron Concentration 57 INTEGER, PUBLIC, PARAMETER :: jpnch = jp_lp + 20 !: Nano Chlorophyll Concentration 58 INTEGER, PUBLIC, PARAMETER :: jpdch = jp_lp + 21 !: Diatoms Chlorophyll Concentration 59 INTEGER, PUBLIC, PARAMETER :: jpno3 = jp_lp + 22 !: Nitrates Concentration 60 INTEGER, PUBLIC, PARAMETER :: jpnh4 = jp_lp + 23 !: Ammonium Concentration 62 61 63 62 #elif defined key_pisces … … 75 74 ! WARNING: be carefull about the order when reading the restart 76 75 ! !!gm this warning should be obsolet with IOM 77 INTEGER, PUBLIC, PARAMETER :: jpdic = jp_l + 1 !: dissolved inoganic carbon concentration78 INTEGER, PUBLIC, PARAMETER :: jptal = jp_l + 2 !: total alkalinity79 INTEGER, PUBLIC, PARAMETER :: jpoxy = jp_l + 3 !: oxygen carbon concentration80 INTEGER, PUBLIC, PARAMETER :: jpcal = jp_l + 4 !: calcite concentration81 INTEGER, PUBLIC, PARAMETER :: jppo4 = jp_l + 5 !: phosphate concentration82 INTEGER, PUBLIC, PARAMETER :: jppoc = jp_l + 6 !: small particulate organic phosphate concentration83 INTEGER, PUBLIC, PARAMETER :: jpsil = jp_l + 7 !: silicate concentration84 INTEGER, PUBLIC, PARAMETER :: jpphy = jp_l + 8 !: phytoplancton concentration85 INTEGER, PUBLIC, PARAMETER :: jpzoo = jp_l + 9 !: zooplancton concentration86 INTEGER, PUBLIC, PARAMETER :: jpdoc = jp_l + 10 !: dissolved organic carbon concentration87 INTEGER, PUBLIC, PARAMETER :: jpdia = jp_l + 11 !: Diatoms Concentration88 INTEGER, PUBLIC, PARAMETER :: jpmes = jp_l + 12 !: Mesozooplankton Concentration89 INTEGER, PUBLIC, PARAMETER :: jpbsi = jp_l + 13 !: (big) Silicate Concentration90 INTEGER, PUBLIC, PARAMETER :: jpfer = jp_l + 14 !: Iron Concentration91 INTEGER, PUBLIC, PARAMETER :: jpbfe = jp_l + 15 !: Big iron particles Concentration92 INTEGER, PUBLIC, PARAMETER :: jpgoc = jp_l + 16 !: big particulate organic phosphate concentration93 INTEGER, PUBLIC, PARAMETER :: jpsfe = jp_l + 17 !: Small iron particles Concentration94 INTEGER, PUBLIC, PARAMETER :: jpdfe = jp_l + 18 !: Diatoms iron Concentration95 INTEGER, PUBLIC, PARAMETER :: jpdsi = jp_l + 19 !: Diatoms Silicate Concentration96 INTEGER, PUBLIC, PARAMETER :: jpnfe = jp_l + 20 !: Nano iron Concentration97 INTEGER, PUBLIC, PARAMETER :: jpnch = jp_l + 21 !: Nano Chlorophyll Concentration98 INTEGER, PUBLIC, PARAMETER :: jpdch = jp_l + 22 !: Diatoms Chlorophyll Concentration99 INTEGER, PUBLIC, PARAMETER :: jpno3 = jp_l + 23 !: Nitrates Concentration100 INTEGER, PUBLIC, PARAMETER :: jpnh4 = jp_l + 24 !: Ammonium Concentration76 INTEGER, PUBLIC, PARAMETER :: jpdic = jp_lp + 1 !: dissolved inoganic carbon concentration 77 INTEGER, PUBLIC, PARAMETER :: jptal = jp_lp + 2 !: total alkalinity 78 INTEGER, PUBLIC, PARAMETER :: jpoxy = jp_lp + 3 !: oxygen carbon concentration 79 INTEGER, PUBLIC, PARAMETER :: jpcal = jp_lp + 4 !: calcite concentration 80 INTEGER, PUBLIC, PARAMETER :: jppo4 = jp_lp + 5 !: phosphate concentration 81 INTEGER, PUBLIC, PARAMETER :: jppoc = jp_lp + 6 !: small particulate organic phosphate concentration 82 INTEGER, PUBLIC, PARAMETER :: jpsil = jp_lp + 7 !: silicate concentration 83 INTEGER, PUBLIC, PARAMETER :: jpphy = jp_lp + 8 !: phytoplancton concentration 84 INTEGER, PUBLIC, PARAMETER :: jpzoo = jp_lp + 9 !: zooplancton concentration 85 INTEGER, PUBLIC, PARAMETER :: jpdoc = jp_lp + 10 !: dissolved organic carbon concentration 86 INTEGER, PUBLIC, PARAMETER :: jpdia = jp_lp + 11 !: Diatoms Concentration 87 INTEGER, PUBLIC, PARAMETER :: jpmes = jp_lp + 12 !: Mesozooplankton Concentration 88 INTEGER, PUBLIC, PARAMETER :: jpbsi = jp_lp + 13 !: (big) Silicate Concentration 89 INTEGER, PUBLIC, PARAMETER :: jpfer = jp_lp + 14 !: Iron Concentration 90 INTEGER, PUBLIC, PARAMETER :: jpbfe = jp_lp + 15 !: Big iron particles Concentration 91 INTEGER, PUBLIC, PARAMETER :: jpgoc = jp_lp + 16 !: big particulate organic phosphate concentration 92 INTEGER, PUBLIC, PARAMETER :: jpsfe = jp_lp + 17 !: Small iron particles Concentration 93 INTEGER, PUBLIC, PARAMETER :: jpdfe = jp_lp + 18 !: Diatoms iron Concentration 94 INTEGER, PUBLIC, PARAMETER :: jpdsi = jp_lp + 19 !: Diatoms Silicate Concentration 95 INTEGER, PUBLIC, PARAMETER :: jpnfe = jp_lp + 20 !: Nano iron Concentration 96 INTEGER, PUBLIC, PARAMETER :: jpnch = jp_lp + 21 !: Nano Chlorophyll Concentration 97 INTEGER, PUBLIC, PARAMETER :: jpdch = jp_lp + 22 !: Diatoms Chlorophyll Concentration 98 INTEGER, PUBLIC, PARAMETER :: jpno3 = jp_lp + 23 !: Nitrates Concentration 99 INTEGER, PUBLIC, PARAMETER :: jpnh4 = jp_lp + 24 !: Ammonium Concentration 101 100 102 101 #else … … 113 112 114 113 ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done) 115 INTEGER, PUBLIC, PARAMETER :: jp_pcs0 = jp_l + 1 !: First index of PISCES tracers116 INTEGER, PUBLIC, PARAMETER :: jp_pcs1 = jp_l + jp_pisces !: Last index of PISCES tracers117 INTEGER, PUBLIC, PARAMETER :: jp_pcs0_2d = jp_l _2d + 1 !: First index of 2D diag118 INTEGER, PUBLIC, PARAMETER :: jp_pcs1_2d = jp_l _2d + jp_pisces_2d !: Last index of 2D diag119 INTEGER, PUBLIC, PARAMETER :: jp_pcs0_3d = jp_l _3d + 1 !: First index of 3D diag120 INTEGER, PUBLIC, PARAMETER :: jp_pcs1_3d = jp_l _3d + jp_pisces_3d !: Last index of 3d diag121 INTEGER, PUBLIC, PARAMETER :: jp_pcs0_trd = jp_l _trd + 1 !: First index of bio diag122 INTEGER, PUBLIC, PARAMETER :: jp_pcs1_trd = jp_l _trd + jp_pisces_trd !: Last index of bio diag114 INTEGER, PUBLIC, PARAMETER :: jp_pcs0 = jp_lp + 1 !: First index of PISCES tracers 115 INTEGER, PUBLIC, PARAMETER :: jp_pcs1 = jp_lp + jp_pisces !: Last index of PISCES tracers 116 INTEGER, PUBLIC, PARAMETER :: jp_pcs0_2d = jp_lp_2d + 1 !: First index of 2D diag 117 INTEGER, PUBLIC, PARAMETER :: jp_pcs1_2d = jp_lp_2d + jp_pisces_2d !: Last index of 2D diag 118 INTEGER, PUBLIC, PARAMETER :: jp_pcs0_3d = jp_lp_3d + 1 !: First index of 3D diag 119 INTEGER, PUBLIC, PARAMETER :: jp_pcs1_3d = jp_lp_3d + jp_pisces_3d !: Last index of 3d diag 120 INTEGER, PUBLIC, PARAMETER :: jp_pcs0_trd = jp_lp_trd + 1 !: First index of bio diag 121 INTEGER, PUBLIC, PARAMETER :: jp_pcs1_trd = jp_lp_trd + jp_pisces_trd !: Last index of bio diag 123 122 124 123 -
branches/DEV_r1924_nocs_latphys/NEMO/TOP_SRC/par_trc.F90
r1836 r2201 23 23 24 24 IMPLICIT NONE 25 PUBLIC26 25 27 26 ! Passive tracers : Total size 28 27 ! --------------- ! total number of passive tracers, of 2d and 3d output and trend arrays 29 INTEGER, PUBLIC, PARAMETER :: jptra = jp_lobster + jp_pisces + jp_cfc+ jp_my_trc30 INTEGER, PUBLIC, PARAMETER :: jpdia2d = jp_lobster_2d + jp_pisces_2d + jp_cfc_2d+ jp_my_trc_2d31 INTEGER, PUBLIC, PARAMETER :: jpdia3d = jp_lobster_3d + jp_pisces_3d + jp_cfc_3d+ jp_my_trc_3d28 INTEGER, PUBLIC, PARAMETER :: jptra = jp_lobster + jp_pisces + jp_cfc + jp_c14b + jp_my_trc 29 INTEGER, PUBLIC, PARAMETER :: jpdia2d = jp_lobster_2d + jp_pisces_2d + jp_cfc_2d + jp_c14b_2d + jp_my_trc_2d 30 INTEGER, PUBLIC, PARAMETER :: jpdia3d = jp_lobster_3d + jp_pisces_3d + jp_cfc_3d + jp_c14b_3d + jp_my_trc_3d 32 31 ! ! total number of sms diagnostic arrays 33 INTEGER, PUBLIC, PARAMETER :: jpdiabio = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_my_trc_trd32 INTEGER, PUBLIC, PARAMETER :: jpdiabio = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_c14b_trd + jp_my_trc_trd 34 33 35 34 ! 1D configuration ("key_c1d") … … 43 42 # if defined key_trc_diatrd 44 43 ! Passive tracers : size for TRP trends diagnotics (used if 'key_trc_diatrd' defined) 45 INTEGER, P ARAMETER :: jptrc_xad = 1 !: x- horizontal advection46 INTEGER, P ARAMETER :: jptrc_yad = 2 !: y- horizontal advection47 INTEGER, P ARAMETER :: jptrc_zad = 3 !: z- vertical advection48 INTEGER, P ARAMETER :: jptrc_xdf = 4 !: lateral diffusion49 INTEGER, P ARAMETER :: jptrc_ydf = 5 !: lateral diffusion50 INTEGER, P ARAMETER :: jptrc_zdf = 6 !: vertical diffusion (Kz)51 INTEGER, P ARAMETER :: jptrc_sbc = 7 !: surface boundary condition44 INTEGER, PUBLIC, PARAMETER :: jptrc_xad = 1 !: x- horizontal advection 45 INTEGER, PUBLIC, PARAMETER :: jptrc_yad = 2 !: y- horizontal advection 46 INTEGER, PUBLIC, PARAMETER :: jptrc_zad = 3 !: z- vertical advection 47 INTEGER, PUBLIC, PARAMETER :: jptrc_xdf = 4 !: lateral diffusion 48 INTEGER, PUBLIC, PARAMETER :: jptrc_ydf = 5 !: lateral diffusion 49 INTEGER, PUBLIC, PARAMETER :: jptrc_zdf = 6 !: vertical diffusion (Kz) 50 INTEGER, PUBLIC, PARAMETER :: jptrc_sbc = 7 !: surface boundary condition 52 51 #if ! defined key_trcldf_eiv && ! defined key_trcdmp 53 INTEGER, P ARAMETER :: jpdiatrc = 7 !: trends: 3*(advection + diffusion ) + sbc52 INTEGER, PUBLIC, PARAMETER :: jpdiatrc = 7 !: trends: 3*(advection + diffusion ) + sbc 54 53 #endif 55 54 #if defined key_trcldf_eiv && defined key_trcdmp 56 INTEGER, P ARAMETER :: jptrc_xei = 8 !: x- horiz. EIV advection57 INTEGER, P ARAMETER :: jptrc_yei = 9 !: y- horiz. EIV advection58 INTEGER, P ARAMETER :: jptrc_zei = 10 !: z- vert. EIV advection59 INTEGER, P ARAMETER :: jptrc_dmp = 11 !: damping60 INTEGER, P ARAMETER :: jpdiatrc = 11 !: trends: 3*(advection + diffusion + eiv ) + sbc + damping55 INTEGER, PUBLIC, PARAMETER :: jptrc_xei = 8 !: x- horiz. EIV advection 56 INTEGER, PUBLIC, PARAMETER :: jptrc_yei = 9 !: y- horiz. EIV advection 57 INTEGER, PUBLIC, PARAMETER :: jptrc_zei = 10 !: z- vert. EIV advection 58 INTEGER, PUBLIC, PARAMETER :: jptrc_dmp = 11 !: damping 59 INTEGER, PUBLIC, PARAMETER :: jpdiatrc = 11 !: trends: 3*(advection + diffusion + eiv ) + sbc + damping 61 60 #endif 62 61 #if defined key_trcldf_eiv && ! defined key_trcdmp 63 INTEGER, P ARAMETER :: jptrc_xei = 8 !: x- horiz. EIV advection64 INTEGER, P ARAMETER :: jptrc_yei = 9 !: y- horiz. EIV advection65 INTEGER, P ARAMETER :: jptrc_zei = 10 !: z- vert. EIV advection66 INTEGER, P ARAMETER :: jpdiatrc = 10 !: trends: 3*(advection + diffusion + eiv ) + sbc62 INTEGER, PUBLIC, PARAMETER :: jptrc_xei = 8 !: x- horiz. EIV advection 63 INTEGER, PUBLIC, PARAMETER :: jptrc_yei = 9 !: y- horiz. EIV advection 64 INTEGER, PUBLIC, PARAMETER :: jptrc_zei = 10 !: z- vert. EIV advection 65 INTEGER, PUBLIC, PARAMETER :: jpdiatrc = 10 !: trends: 3*(advection + diffusion + eiv ) + sbc 67 66 #endif 68 67 #if ! defined key_trcldf_eiv && defined key_trcdmp 69 INTEGER, P ARAMETER :: jptrc_dmp = 8 !: damping70 INTEGER, P ARAMETER :: jpdiatrc = 8 !: trends: 3*(advection + diffusion ) + sbc + damping68 INTEGER, PUBLIC, PARAMETER :: jptrc_dmp = 8 !: damping 69 INTEGER, PUBLIC, PARAMETER :: jpdiatrc = 8 !: trends: 3*(advection + diffusion ) + sbc + damping 71 70 #endif 72 71 #endif -
branches/DEV_r1924_nocs_latphys/NVTK/INSTALL/JOBS/job_GYRE.ksh
r1603 r2201 14 14 MYO_EXP=xxx 15 15 TSYMB=xxx 16 USE_IOMPUT=xxx 17 USE_IOSERVER=xxx 18 NB_PROCS_IOSERVER=xxx 16 19 17 20 # Variables changed by ins_valid.ksh script … … 107 110 108 111 mv nam.tmp namelist 112 113 # iom_put xml file 114 if [ "${USE_IOMPUT}" = "true" ] 115 then 116 get_namelist ${LOC_NAM} xmlio_server.def ${MYO_EXP} xmlio_server.def 117 get_namelist ${LOC_NAM} iodef.xml ${MYO_EXP} iodef.xml 118 sed -e "s/^ *using_server *=.*$/ using_server = .${USE_IOSERVER}./" xmlio_server.def > tmp$$ 119 mv tmp$$ xmlio_server.def 120 fi 121 109 122 110 123 # Analytical forcing … … 219 232 case ${RUN} in 220 233 'mon' | 'omp' ) 221 liste_files=' *abort* memory* namelist* perfs* solver.stat ocean.output layout* GYRE* restart* mono*' ;;234 liste_files=' *abort* memory* namelist* *xml* perfs* solver.stat ocean.output layout* GYRE* restart* mono*' ;; 222 235 'mpi' ) 223 liste_files=' *abort* namelist* solver.stat perfs* ocean.output* layout* GYRE* restart* mpp*' ;;236 liste_files=' *abort* namelist* *xml* solver.stat perfs* ocean.output* layout* GYRE* restart* mpp*' ;; 224 237 esac 225 238 … … 245 258 ############################################################## 246 259 ############################################################## 247 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' ]260 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' -o ${REF_TAG} = 'nemo_v3_2' ] 248 261 then 249 262 STORE_DATA=${REF_OD}/${CONF}/${REF_TAG}/${RUN}/${DIROUT} -
branches/DEV_r1924_nocs_latphys/NVTK/INSTALL/JOBS/job_GYRE_LOBSTER.ksh
r1603 r2201 14 14 MYO_EXP=xxx 15 15 TSYMB=xxx 16 USE_IOMPUT=xxx 17 USE_IOSERVER=xxx 18 NB_PROCS_IOSERVER=xxx 19 16 20 17 21 # Variables changed by ins_valid.ksh script … … 128 132 sed -e "s%$PAT_ADD% nwritedia = ${ITERATIONS}%" namelist_lobster > nam.tmp 129 133 mv nam.tmp namelist_lobster 134 135 # iom_put xml file 136 if [ "${USE_IOMPUT}" = "true" ] 137 then 138 get_namelist ${LOC_NAM} xmlio_server.def ${MYO_EXP} xmlio_server.def 139 get_namelist ${LOC_NAM} iodef.xml ${MYO_EXP} iodef.xml 140 sed -e "s/^ *using_server *=.*$/ using_server = .${USE_IOSERVER}./" xmlio_server.def > tmp$$ 141 mv tmp$$ xmlio_server.def 142 fi 130 143 131 144 # Analytical forcing … … 253 266 case ${RUN} in 254 267 'mon' | 'omp' ) 255 liste_files=' *abort* memory* namelist* perfs* solver.stat ocean.output layout* GYRE* restart* mono*' ;;268 liste_files=' *abort* memory* namelist* *xml* perfs* solver.stat ocean.output layout* GYRE* restart* mono*' ;; 256 269 'mpi' ) 257 liste_files=' *abort* namelist* solver.stat perfs* ocean.output* layout* GYRE* restart* mpp*' ;;270 liste_files=' *abort* namelist* *xml* solver.stat perfs* ocean.output* layout* GYRE* restart* mpp*' ;; 258 271 esac 259 272 … … 279 292 ############################################################## 280 293 ############################################################## 281 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' ]294 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' -o ${REF_TAG} = 'nemo_v3_2' ] 282 295 then 283 296 STORE_DATA=${REF_OD}/${CONF}/${REF_TAG}/${RUN}/${DIROUT} -
branches/DEV_r1924_nocs_latphys/NVTK/INSTALL/JOBS/job_ORCA2_LIM.ksh
r1781 r2201 139 139 140 140 # Get forcing files 141 ${D_GET} ${D_INPUT}/ORCA2_LIM_nemo_v3. 1.tar ORCA2_LIM_nemo_v3.1.tar142 tar xvf ORCA2_LIM_nemo_v3. 1.tar143 rm -f ORCA2_LIM_nemo_v3. 1.tar141 ${D_GET} ${D_INPUT}/ORCA2_LIM_nemo_v3.2.tar ORCA2_LIM_nemo_v3.2.tar 142 tar xvf ORCA2_LIM_nemo_v3.2.tar 143 rm -f ORCA2_LIM_nemo_v3.2.tar 144 144 145 145 # Get restarts files if needed … … 310 310 ############################################################## 311 311 ############################################################## 312 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' ]312 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' -o ${REF_TAG} = 'nemo_v3_2' ] 313 313 then 314 314 STORE_DATA=${REF_OD}/${CONF}/${REF_TAG}/${RUN}/${DIROUT} -
branches/DEV_r1924_nocs_latphys/NVTK/INSTALL/JOBS/job_ORCA2_LIM3.ksh
r1781 r2201 135 135 136 136 # Get forcing files 137 ${D_GET} ${D_INPUT}/ORCA2_LIM_nemo_v3. 1.tar ORCA2_LIM_nemo_v3.1.tar138 tar xvf ORCA2_LIM_nemo_v3. 1.tar139 rm -f ORCA2_LIM_nemo_v3. 1.tar137 ${D_GET} ${D_INPUT}/ORCA2_LIM_nemo_v3.2.tar ORCA2_LIM_nemo_v3.2.tar 138 tar xvf ORCA2_LIM_nemo_v3.2.tar 139 rm -f ORCA2_LIM_nemo_v3.2.tar 140 140 141 141 # Get restarts files if needed … … 306 306 ############################################################## 307 307 ############################################################## 308 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' ]308 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' -o ${REF_TAG} = 'nemo_v3_2' ] 309 309 then 310 310 STORE_DATA=${REF_OD}/${CONF}/${REF_TAG}/${RUN}/${DIROUT} -
branches/DEV_r1924_nocs_latphys/NVTK/INSTALL/JOBS/job_ORCA2_LIM_PISCES.ksh
r1620 r2201 14 14 MYO_EXP=xxx 15 15 TSYMB=xxx 16 USE_IOMPUT=xxx 17 USE_IOSERVER=xxx 18 NB_PROCS_IOSERVER=xxx 19 16 20 17 21 # Variables changed by ins_valid.ksh script … … 159 163 mv nam.tmp namelist_pisces 160 164 165 # iom_put xml file 166 if [ "${USE_IOMPUT}" = "true" ] 167 then 168 get_namelist ${LOC_NAM} xmlio_server.def ${MYO_EXP} xmlio_server.def 169 get_namelist ${LOC_NAM} iodef.xml ${MYO_EXP} iodef.xml 170 sed -e "s/^ *using_server *=.*$/ using_server = .${USE_IOSERVER}./" xmlio_server.def > tmp$$ 171 mv tmp$$ xmlio_server.def 172 fi 173 161 174 # Get forcing files 162 ${D_GET} ${D_INPUT}/ORCA2_LIM_nemo_v3. 1.tar ORCA2_LIM_nemo_v3.1.tar163 tar xvf ORCA2_LIM_nemo_v3. 1.tar164 rm -f ORCA2_LIM_nemo_v3. 1.tar175 ${D_GET} ${D_INPUT}/ORCA2_LIM_nemo_v3.2.tar ORCA2_LIM_nemo_v3.2.tar 176 tar xvf ORCA2_LIM_nemo_v3.2.tar 177 rm -f ORCA2_LIM_nemo_v3.2.tar 165 178 166 179 # Get forcing pisces files … … 292 305 case ${RUN} in 293 306 'mon' | 'omp' ) 294 liste_files='*abort* memory* namelist* perfs* solver.stat ocean.output layout* ORCA2* restart* mono*' ;;307 liste_files='*abort* memory* namelist* *xml* perfs* solver.stat ocean.output layout* ORCA2* restart* mono*' ;; 295 308 'mpi' ) 296 liste_files='*abort* namelist* solver.stat perfs* ocean.output* layout* ORCA2* restart* mpp*' ;;309 liste_files='*abort* namelist* *xml* solver.stat perfs* ocean.output* layout* ORCA2* restart* mpp*' ;; 297 310 esac 298 311 … … 318 331 ############################################################## 319 332 ############################################################## 320 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' ]333 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' -o ${REF_TAG} = 'nemo_v3_2' ] 321 334 then 322 335 STORE_DATA=${REF_OD}/${CONF}/${REF_TAG}/${RUN}/${DIROUT} -
branches/DEV_r1924_nocs_latphys/NVTK/INSTALL/JOBS/job_ORCA2_OFF_PISCES.ksh
r1576 r2201 14 14 MYO_EXP=xxx 15 15 TSYMB=xxx 16 USE_IOMPUT=xxx 17 USE_IOSERVER=xxx 18 NB_PROCS_IOSERVER=xxx 19 16 20 17 21 # Variables changed by ins_valid.ksh script … … 134 138 mv nam.tmp namelist_pisces 135 139 140 # iom_put xml file 141 if [ "${USE_IOMPUT}" = "true" ] 142 then 143 get_namelist ${LOC_NAM} xmlio_server.def ${MYO_EXP} xmlio_server.def 144 get_namelist ${LOC_NAM} iodef.xml ${MYO_EXP} iodef.xml 145 sed -e "s/^ *using_server *=.*$/ using_server = .${USE_IOSERVER}./" xmlio_server.def > tmp$$ 146 mv tmp$$ xmlio_server.def 147 fi 136 148 137 149 # Get forcing files … … 264 276 case ${RUN} in 265 277 'mon' | 'omp' ) 266 liste_files='*abort* memory* namelist* perfs* ocean.output layout* PISCES* restart* mono*' ;;278 liste_files='*abort* memory* namelist* *xml* perfs* ocean.output layout* PISCES* restart* mono*' ;; 267 279 'mpi' ) 268 liste_files='*abort* namelist* perfs* ocean.output* layout* PISCES* restart* mpp*' ;;280 liste_files='*abort* namelist* *xml* perfs* ocean.output* layout* PISCES* restart* mpp*' ;; 269 281 esac 270 282 … … 290 302 ############################################################## 291 303 ############################################################## 292 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' ]304 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' -o ${REF_TAG} = 'nemo_v3_2' ] 293 305 then 294 306 STORE_DATA=${REF_OD}/${CONF}/${REF_TAG}/${RUN}/${DIROUT} -
branches/DEV_r1924_nocs_latphys/NVTK/INSTALL/JOBS/job_ZAGRIF.ksh
r1620 r2201 14 14 MYO_EXP=xxx 15 15 TSYMB=xxx 16 USE_IOMPUT=xxx 17 USE_IOSERVER=xxx 18 NB_PROCS_IOSERVER=xxx 16 19 17 20 # Variables changed by ins_valid.ksh script … … 146 149 done 147 150 151 # iom_put xml file 152 if [ "${USE_IOMPUT}" = "true" ] 153 then 154 get_namelist ${LOC_NAM} xmlio_server.def ${MYO_EXP} xmlio_server.def 155 get_namelist ${LOC_NAM} iodef.xml ${MYO_EXP} iodef.xml 156 sed -e "s/^ *using_server *=.*$/ using_server = .${USE_IOSERVER}./" xmlio_server.def > tmp$$ 157 mv tmp$$ xmlio_server.def 158 fi 159 148 160 # Get forcing files 149 ${D_GET} ${D_INPUT}/ORCA2_LIM_nemo_v3. 1.tar ORCA2_LIM_nemo_v3.1.tar150 tar xvf ORCA2_LIM_nemo_v3. 1.tar151 rm -f ORCA2_LIM_nemo_v3. 1.tar161 ${D_GET} ${D_INPUT}/ORCA2_LIM_nemo_v3.2.tar ORCA2_LIM_nemo_v3.2.tar 162 tar xvf ORCA2_LIM_nemo_v3.2.tar 163 rm -f ORCA2_LIM_nemo_v3.2.tar 152 164 153 165 # Get restarts files if needed … … 267 279 case ${RUN} in 268 280 'mon' | 'omp' ) 269 liste_files=' *abort* memory* *namelist* perfs* solver.stat ocean.output 1_Agulhas* layout* ZAGRIF* restart* mono*' ;;281 liste_files=' *abort* memory* *namelist* *xml* perfs* solver.stat ocean.output 1_Agulhas* layout* ZAGRIF* restart* mono*' ;; 270 282 'mpi' ) 271 liste_files=' *abort* *namelist* solver.stat perfs* ocean.output* layout* 1_Agulhas* ZAGRIF* restart* mpp*' ;;283 liste_files=' *abort* *namelist* *xml* solver.stat perfs* ocean.output* layout* 1_Agulhas* ZAGRIF* restart* mpp*' ;; 272 284 esac 273 285 … … 293 305 ############################################################## 294 306 ############################################################## 295 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' ]307 if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' -o ${REF_TAG} = 'nemo_v3_2' ] 296 308 then 297 309 STORE_DATA=${REF_OD}/${CONF}/${REF_TAG}/${RUN}/${DIROUT} -
branches/DEV_r1924_nocs_latphys/NVTK/Makefile
r1611 r2201 36 36 #- 37 37 #- Configurations list which must be tested 38 LISTE_CONF = GYRE GYRE_LOBSTER ORCA2_LIM ORCA2_LIM3 ORCA2_LIM_PISCES ORCA2_OFF_PISCES 38 LISTE_CONF = GYRE GYRE_LOBSTER ORCA2_LIM ORCA2_LIM3 ORCA2_LIM_PISCES ORCA2_OFF_PISCES ZAGRIF 39 39 #- 40 40 #- Jobs to launch use keyword: nojob, all, long, short or gtime … … 60 60 MAK_MEMO = memo 61 61 #- 62 #- Experience name or reference Tag name (nemo_v2, nemo_v2_3 or nemo_v3)63 REF_TAGV = nemo_v3 62 #- Experience name or reference Tag name (nemo_v2, nemo_v2_3 ,nemo_v3 or nemo_v3_2) 63 REF_TAGV = nemo_v3_2 64 64 #- 65 65 ##################################################################### -
branches/DEV_r1924_nocs_latphys/NVTK/fait_AA_make
r1791 r2201 417 417 for inc in `sed -n 's/^[ ]*[iI][nN][cC][lL][uU][dD][eE][ ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $fic | sort -u` 418 418 do 419 if [ "${inc}" != "mpif.h" ] 420 then 419 421 dep="$dep\n$inc" 422 fi 420 423 done 421 424 … … 429 432 for inc in `sed -n 's/^#[ ]*[iI][nN][cC][lL][uU][dD][eE][ ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $fic | sort -u` 430 433 do 431 j=1 434 if [ "${inc}" != "mpif.h" ] 435 then 436 j=1 432 437 dep="$dep\n$inc" 433 438 for inc2 in `sed -n 's/^#[ ]*[iI][nN][cC][lL][uU][dD][eE][ ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $inc | sort -u` … … 437 442 for inc3 in `sed -n 's/^#[ ]*[iI][nN][cC][lL][uU][dD][eE][ ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $inc2 | sort -u` 438 443 do 444 439 445 dep="$dep\n$inc3" 440 446 done 441 447 done 448 fi 442 449 done 443 450 -
branches/DEV_r1924_nocs_latphys/UTIL/fait_AA_make
r1793 r2201 230 230 echo '# Check your compilers option in consequence when using real F95 compilers' 231 231 echo '' 232 echo 'F_O += -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) ' 233 echo 'L_X = $(L_O) ' 232 234 echo '#-Q- platine # Compiler options NEMO (CCRT Itanium Bull) ' 233 235 echo '#-Q- platine F_O = -O3 -i4 -r8 -module $(MODDIR)/oce -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) ' … … 403 405 for inc in `sed -n 's/^[ ]*[iI][nN][cC][lL][uU][dD][eE][ ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $fic | sort -u` 404 406 do 407 if [ "${inc}" != "mpif.h" ] 408 then 405 409 dep="$dep\n$inc" 410 fi 406 411 done 407 412 … … 415 420 for inc in `sed -n 's/^#[ ]*[iI][nN][cC][lL][uU][dD][eE][ ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $fic | sort -u` 416 421 do 422 if [ "${inc}" != "mpif.h" ] 423 then 417 424 j=1 418 425 dep="$dep\n$inc" … … 426 433 done 427 434 done 435 fi 428 436 done 429 437
Note: See TracChangeset
for help on using the changeset viewer.